Лучший способ проверить, охватывает ли joda.time.Interval ровно 1 календарную неделю (с учетом летнего времени и т. Д.) - PullRequest
1 голос
/ 04 мая 2011

Есть ли лучший способ сделать это?

boolean oneCalendarWeek = interval.getStart().plusWeeks(1).equals( interval.getEnd() );

Полагаю, следующее не сработает из-за способа реализации equals ...

boolean oneCalendarWeek = interval.toPeriod().equals( Weeks.ONE );

1 Ответ

2 голосов
/ 04 мая 2011

Из комментариев:

Я действительно хочу знать, поддерживает ли API что-то вроде моего второго примера, который, я думаю, более ясен, чем первый

Хотя примериспользование Weeks.ONE не работает (так как Period.equals() сначала проверяет, поддерживают ли два экземпляра Period одинаковое количество полей, а Weeks.ONE поддерживает только одно поле), это должно работать вместо:

boolean oneCalendarWeek = interval.toPeriod().equals( Period.weeks(1) );

Вот пример кода , который проверяет его на интервал, который начинается до начала летнего времени и заканчивается в то время как в летнее время.Однако я не уверен на 100%, как это будет происходить, если время начала или окончания интервала попадет точно на границу перехода на летнее время.

...