检查日是星期六还是星期日

时间:2018-03-26 12:30:29

标签: scala

我正在寻找difference between 2 date in scala。这两个日期不应该是星期六不是星期日。  我做了一个scala函数来测试周六或周日的日期:

我编辑了我的问题,这是我的代码,用于测试一天是星期六还是星期日。 我应该使用拖曳日期来使用它:start_date和finish_date,因为在这个操作之后我会做这些拖曳日期之间的区别。 我的函数jourouvree有一个参数,而不是日期。 如何修改我的代码以传递两个日期。

2 个答案:

答案 0 :(得分:1)

使用Java 8 datetime api:

import java.time._
import java.time.format.DateTimeFormatter

val formatter =  DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
//Assume d2,d2 themselves are not weekend days
def jourOuvree(sd1:String, sd2:String): Unit = {
    val d1 = LocalDateTime.parse(sd1, formatter)
    val d2 = LocalDateTime.parse(sd2, formatter)
    //return if d1 is not earlier than d2. TODO: handle what to be done
    if(d2.isAfter(d1) == false) return
    var (days, dayCtr) = (1, 1)
    while(d1.plusDays(dayCtr).isBefore(d2)){
        dayCtr+=1
        val dow = d1.plusDays(dayCtr).getDayOfWeek()
        if(!dow.equals(DayOfWeek.SATURDAY) && !dow.equals(DayOfWeek.SUNDAY))
            days+=1
    }
    println(days)
}

调用如下:

jourOuvree("2011-03-31 07:55:00", "2011-04-06 15:41:00")

你打印5

注意:代码在解析时不处理异常。 此外,可能还有其他要求的要点,对于这些要点,您是做出必要更改的最佳判断。

答案 1 :(得分:1)

检查日是星期六还是星期日:

import java.time.{LocalDate, DayOfWeek}

def isWeekend(day: LocalDate) =
  day.getDayOfWeek == DayOfWeek.SATURDAY ||
    day.getDayOfWeek == DayOfWeek.SUNDAY