質問はかなり自明です。新しい Interval(then, now) を作成し、水曜日の午後 3 時 (またはその他の曜日と時間の組み合わせ) がその間隔内に含まれているかどうかを確認したいと思います。明確にするために、特定の DateTime が Interval に含まれているかどうかには関心がありませんが、一般的な曜日/時間の組み合わせに関心があります。
Jodaでこれを行うためのエレガントでクリーンな方法はありますか?
質問はかなり自明です。新しい Interval(then, now) を作成し、水曜日の午後 3 時 (またはその他の曜日と時間の組み合わせ) がその間隔内に含まれているかどうかを確認したいと思います。明確にするために、特定の DateTime が Interval に含まれているかどうかには関心がありませんが、一般的な曜日/時間の組み合わせに関心があります。
Jodaでこれを行うためのエレガントでクリーンな方法はありますか?
DateTime fromDate = new DateTime(); // begin interval
DateTime toDate = fromDate.plusMinutes(999999); // end inteval
Interval interval = new Interval(fromDate, toDate); // interval
DateTime anchor = fromDate.minusWeeks(1).withDayOfWeek(DateTimeConstants.WEDNESDAY).withMillisOfDay(
0).withHourOfDay(15); // Wednesday 3pm from previous week
while (anchor.isBefore(toDate))
{
if (interval.contains(anchor))
{
return anchor; // if interval contains Wednesday 3pm - > return it
}
else
{
anchor = anchor.plusWeeks(1); // else get next Wednesday 3pm from next week
}
}
return null; // Wednesday 3pm isn't in interval