Java - 使用Joda定义时间间隔

时间:2016-04-16 02:47:53

标签: java date time jodatime intervals

我必须模拟商业开放的时间间隔,例如:星期一到星期五10hs-18hs,并通过功能检查商业是否开放。我认为最合理的是使用班级" Interval" Joda提供的,但我不能只用几天或几小时来实例化Interval。我必须使用Joda。

1 个答案:

答案 0 :(得分:2)

引用Interval的javadoc:

  

时间间隔表示两个瞬间之间的时间段

自"周一10:00"不是一瞬间,你不能使用Interval

Joda-Time图书馆没有您想要的课程,因此您必须自己编写。

"的要求必须使用JODA"简单意味着您的类应该使用LocalDateTime作为输入并使用Joda-Time来查询工作日和时间。

可以使用一个好的可重用类(例如名为OpenCalendar):

OpenCalendar openCal = new OpenCalendar();
openCal.add(DateTimeConstants.MONDAY   , new LocalTime(10, 0), new LocalTime(18, 0));
openCal.add(DateTimeConstants.TUESDAY  , new LocalTime(10, 0), new LocalTime(18, 0));
openCal.add(DateTimeConstants.WEDNESDAY, new LocalTime(10, 0), new LocalTime(18, 0));
openCal.add(DateTimeConstants.THURSDAY , new LocalTime(10, 0), new LocalTime(18, 0));
openCal.add(DateTimeConstants.FRIDAY   , new LocalTime(10, 0), new LocalTime(18, 0));

LocalDateTime now = LocalDateTime.now();
if (openCal.isOpen(now)) {
    // code here
}