Scala实现–获取两个日期至今的所有日期包括开始日期和结束日期

  • Post author:
  • Post category:其他


获取两个日期之间的所有日期包括开始日期和结束日期:

 /**
   * 获取两个日期之间的日期
   * @param start 开始日期
   * @param end 结束日期
   * @return 日期集合
   */
  def getBetweenDates(start: String, end: String) = {
    val startData = new SimpleDateFormat("yyyyMMdd").parse(start); //定义起始日期
    val endData = new SimpleDateFormat("yyyyMMdd").parse(end); //定义结束日期

    val dateFormat: SimpleDateFormat = new SimpleDateFormat("yyyyMMdd")
    var buffer = new ListBuffer[String]
    buffer += dateFormat.format(startData.getTime())
    val tempStart = Calendar.getInstance()

    tempStart.setTime(startData)
    tempStart.add(Calendar.DAY_OF_YEAR, 1)

    val tempEnd = Calendar.getInstance()
    tempEnd.setTime(endData)
    while (tempStart.before(tempEnd)) {
      // result.add(dateFormat.format(tempStart.getTime()))
      buffer += dateFormat.format(tempStart.getTime())
      tempStart.add(Calendar.DAY_OF_YEAR, 1)
    }
    buffer += dateFormat.format(endData.getTime())
    buffer.toList
  }

方法二:

 /**
   * 返回两个日期整数间整个
   * @param startDay
   * @param endDay
   * @return
   */
  def getDateRange(startData: Int, endData: Int): immutable.IndexedSeq[Int] = {
    (startData to endData).filter {
      day =>
        try {
          val formatter = new SimpleDateFormat("yyyyMMdd")
          formatter.setLenient(false)
          formatter.parse(day + "")
          true
        } catch {
          case _: Exception => false
        }
    }
  }



版权声明:本文为u014236468原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。