fromDate と toDate という 2 つの LocalDate オブジェクトがあるとします。月曜日、火曜日など、間隔内にある曜日を知る必要があります。また、1 日、2 日、またはたとえば 20 日のみ - 20 日から 23 日までのどの日も知りたいです。Joda タイム ライブラリに役立つツール/メソッドはありますか? 特定のアルゴリズムについて質問しているわけではありません。自分で書くこともできますが、Joda の機能についてはわかりません。おそらく、再利用できるものが既にあるのでしょう。
3 に答える
1
public static boolean isDayBetween(int dtc, DateTime from, DateTime to)
{
final int dayOfWeekFrom = from.dayOfWeek().get();
final int daysBetween = Days.daysBetween(from, to).getDays();
if (dtc >= dayOfWeekFrom && dtc <= (dayOfWeekFrom + daysBetween))
return true;
return false;
}
使用方法
DateTimeFormatter dtf = DateTimeFormat.forPattern("yyyy-MM-dd");
final DateTime from = dtf.parseDateTime("2000-07-08");
final DateTime to = dtf.parseDateTime("2000-07-13");
boolean res = isDayBetween(from, to, DateTimeConstants.THURSDAY)
于 2012-04-19T10:47:30.863 に答える
1
これは、私が思うに近いものです:
または、おそらく次のようなものです(2つの異なる月のみを想定しています):
public Boolean dayOfMonthExistInPeriod(final int dayOfMonth, final LocalDate from, final LocalDate until){
final DateMidnight tested = new DateMidnight(from.getYear(), from.getMonthOfYear(), dayOfMonth);
final DateMidnight tested2 = new DateMidnight(until.getYear(), until.getMonthOfYear(), dayOfMonth);
final Interval interval = new Interval(from.toDateMidnight(), until.toDateMidnight());
return interval.contains(tested) && interval.contains(tested2);
}
于 2012-04-11T13:06:15.340 に答える