ja, sorry, dass ich mich erst jetzt melde.
add 1 erhöht den Monat um 1 (nächster Monat),
set 1 setzt auf den ersten Tag des Monats,
zusammen bekommt man so den letzten Tag des Monats Ultimo.
[code=java] public static void main(String[] args) {
Random r = new Random();
for (int i = 0; i < 10; i++) {
Date d = getLDay(new Date(r.nextLong() >>> 16));
DateFormat df = DateFormat.getDateInstance(DateFormat.FULL);
System.out.println(df.format(d));
}
}
private static Date getLDay(Date date) {
GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();
gc.setTime(date);
gc.set(Calendar.DAY_OF_MONTH, 1);
gc.add(Calendar.MONTH, 1);
gc.add(Calendar.DATE, -1);
return gc.getTime();
}[/code]
[code]Montag, 30. Juni 7253
Montag, 30. September 10622
Donnerstag, 29. Februar 9168
Freitag, 28. Februar 7062
Sonntag, 31. Oktober 9554
Freitag, 28. Februar 4651
Freitag, 30. Juni 4141
Mittwoch, 31. März 10715
Montag, 30. April 4762
Sonntag, 31. Oktober 8027[/code]
Etwas astronomische Werte (obwohl schon verschoben, aber wurst)