Ich schaffe es easlily in Java zu tun 8:Java 7 - Wie bekomme ich den 4. Dienstag im Mai?
public static Date getFourthTuesdayOfMay(int year){
LocalDate date = LocalDate.of(year, Month.MAY, 1);
LocalDate fourthTuesdayOfMay = date.with(dayOfWeekInMonth(4, DayOfWeek.TUESDAY));
return Date.from(fourthTuesdayOfMay.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant());
}
Das Problem ist, ich es in Java 7 tun müssen, ... kann aber nicht herausfinden, wie.
Antwort ist:
Calendar date = Calendar.getInstance();
date.set(Calendar.DAY_OF_WEEK,Calendar.TUESDAY);
date.set(Calendar.MONTH, Calendar.MAY);
date.set(Calendar.WEEK_OF_MONTH, 4);
date.set(Calendar.YEAR, year);
date.set(Calendar.HOUR, 0);
date.set(Calendar.MINUTE, 0);
date.set(Calendar.SECOND, 0);
date.set(Calendar.MILLISECOND, 0);
return date.getTime();
Wenn Sie die Bibliothek [Joda-Time] (http://www.joda.org/joda-time/) verwenden, müssen Sie Ihren Code nicht viel ändern. – 4castle
@ 4castle Oder [ThreeTen] (http://www.threeten.org/threetenbp/) –
Sie können vom Anfang des Monats zum ersten Dienstag iterieren und dann 21 Tage hinzufügen, aber es wird viel einfacher zu verwenden sein eine Bibliothek wie oben erwähnt. – Jason