1

fromDate と toDate という 2 つの LocalDate オブジェクトがあるとします。月曜日、火曜日など、間隔内にある曜日を知る必要があります。また、1 日、2 日、またはたとえば 20 日のみ - 20 日から 23 日までのどの日も知りたいです。Joda タイム ライブラリに役立つツール/メソッドはありますか? 特定のアルゴリズムについて質問しているわけではありません。自分で書くこともできますが、Joda の機能についてはわかりません。おそらく、再利用できるものが既にあるのでしょう。

4

3 に答える 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 に答える