我正在寻找difference between 2 date in scala
。这两个日期不应该是星期六不是星期日。
我做了一个scala函数来测试周六或周日的日期:
我编辑了我的问题,这是我的代码,用于测试一天是星期六还是星期日。 我应该使用拖曳日期来使用它:start_date和finish_date,因为在这个操作之后我会做这些拖曳日期之间的区别。 我的函数jourouvree有一个参数,而不是日期。 如何修改我的代码以传递两个日期。
答案 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