1
String specificDate=2013+"-"+06+"-"+20;
String day="Monday";

それ以降の月曜日が来る次の日付を見つける方法はspecificDate?

4

7 に答える 7

1

Java 8の場合、次のようなものを使用できます...

LocalDate date = LocalDate.of(2013, Month.JUNE, 20);
LocalDate nextWed2 = date.with(TemporalAdjusters.nextOrSame(DayOfWeek.MONDAY));

また...

LocalDate date = LocalDate.of(2013, Month.JUNE, 20);
LocalDate nextWed2 = date.with(TemporalAdjusters.next(DayOfWeek.MONDAY));

選択した日付が でしMONDAYたが、次の日付が必要な場合MONDAY

ここでより詳細に示されているように

または、JodaTime を使用したい場合は...

    LocalDate date = new LocalDate(2013, DateTimeConstants.JUNE, 20);
    LocalDate nextMonday = new LocalDate(date);
    if (date.getDayOfWeek() >= DateTimeConstants.FRIDAY) {
        nextMonday = date.plusWeeks(1);
    }
    nextMonday = nextMonday.withDayOfWeek(DateTimeConstants.FRIDAY);

この答えに基づいているのはどれですか

于 2014-12-10T03:57:46.140 に答える
1

これを試して

    Calendar c = new GregorianCalendar(2013, 5, 20);
    int diff = Calendar.MONDAY - c.get(Calendar.DAY_OF_WEEK);
    if (diff < 0) {
        diff = 7 + diff;
    }
    c.add(Calendar.DATE, diff);
    Date monday = c.getTime();
于 2013-06-20T11:17:00.817 に答える