Java - 使用 Joda 定义时间间隔
Java - Define intervals of time with Joda
我必须对商业开放的时间间隔进行建模,例如:周一至周五 10hs-18hs,并具有检查商业是否开放的功能。我认为最合理的是使用 Joda 提供的 class "Interval" ,但我不能只用几天或几小时来实例化一个 Interval 。我必须使用 Joda。
引用 Interval
的 javadoc:
A time interval represents a period of time between two instants.
因为"Monday at 10:00"不是瞬间,你不能使用Interval
。
Joda-Time 库没有class你想要的,所以你必须自己写。
"must use JODA" 简单的要求意味着您的 class 应该将 LocalDateTime
作为输入并使用 Joda-Time 查询工作日和一天中的时间。
一个好的可重复使用的 class(例如称为 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
}
我必须对商业开放的时间间隔进行建模,例如:周一至周五 10hs-18hs,并具有检查商业是否开放的功能。我认为最合理的是使用 Joda 提供的 class "Interval" ,但我不能只用几天或几小时来实例化一个 Interval 。我必须使用 Joda。
引用 Interval
的 javadoc:
A time interval represents a period of time between two instants.
因为"Monday at 10:00"不是瞬间,你不能使用Interval
。
Joda-Time 库没有class你想要的,所以你必须自己写。
"must use JODA" 简单的要求意味着您的 class 应该将 LocalDateTime
作为输入并使用 Joda-Time 查询工作日和一天中的时间。
一个好的可重复使用的 class(例如称为 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
}