Sì, anche se non è bella come potrebbe essere:
import org.joda.time.*;
import org.joda.time.chrono.*;
import org.joda.time.field.*;
public class Test {
public static void main(String[] args) {
GregorianChronology calendar = GregorianChronology.getInstance();
DateTimeField field = calendar.dayOfMonth();
for (int i = 1; i < 12; i++) {
LocalDate date = new LocalDate(2010, i, 1, calendar);
System.out.println(field.getMaximumValue(date));
}
}
}
Si noti che ho hard-coded il presupposto che ci sono 12 mesi, e che siamo interessati al 2010. Io ho esplicitamente selezionare la cronologia gregoriana, tuttavia - in altre cronologie otterresti risposte diverse, naturalmente. (E il ciclo "12 mesi" non sarebbe un presupposto valido ...)
Sono andato per un LocalDate
piuttosto che uno DateTime
per recuperare il valore, per enfatizzare (comunque vagamente :) che il valore non dipende dal fuso orario.
Questo non è ancora così semplice come sembra, intendiamoci. Non so cosa succede se si utilizza una cronologia per costruire il LocalDate
, ma si richiede il valore massimo di un campo in una cronologia diversa. Ho alcune idee su ciò che forza accadere, conoscendo una certa quantità su Joda tempo, ma non è probabilmente una buona idea :)
fonte
2010-09-22 19:52:31
Hmmm ... anagramatically, o programmaticamente? – Lambart