Mit der Kalenderklasse von Java bleibt man am letzten Tag des Monats ein wenig hängen

Was ich machen wollte

Ich habe ein Programm erstellt, das den 31. bis 28. Februar automatisch konvertiert, wenn der letzte Tag des Monats mithilfe der Kalenderklasse von Java abgerufen wird. Der 31. wurde jedoch ausgegeben, obwohl der Februar angegeben wurde.

Calendar cal = Calendar.getInstance();
cal.clear();
cal.set(Calendar.YEAR,2019);
cal.set(Calendar.MONTH,2);

cal.getActualMaximum(Calendar.DATE);//Das Ergebnis ist 31

Ursache

Die Ursache war, dass die Kalenderklasse 0 als Januar behandelte. Wenn also 2 angegeben wurde, wurde sie als März behandelt.

Calendar cal = Calendar.getInstance();
cal.clear();
cal.set(Calendar.YEAR,2019);
cal.set(Calendar.MONTH,1);//Februar

cal.getActualMaximum(Calendar.DATE)//Das Ergebnis ist 28

Warum behandelst du 1 nicht als Januar ... Ich habe eine Notiz für diejenigen gemacht, die die gleichen Augen haben

Recommended Posts

Mit der Kalenderklasse von Java bleibt man am letzten Tag des Monats ein wenig hängen
Ausgabe des Tages mit der Ruby's Date-Klasse
Bei Verwendung des Konstruktors der Date-Klasse von Java wird das Datum um 1900 vorverlegt.
So leiten Sie den letzten Tag des Monats in Java ab
Erstellen Sie einen Kalender aus der Kalenderklasse, indem Sie das Jahr und den Monat angeben
[Java] Wie man mit der String-Klasse an die Spitze eines bestimmten Strings kommt
Zeigen Sie den japanischen Kalender und Tag mit der Java8-Standardklasse an
Ein Hinweis zur libGDX Utils-Klasse
Lesen einer Datei mit der Scannerklasse von Java
Ein kurzer Hinweis zur Verwendung von jshell mit dem offiziellen Docker-Image des JDK
[Ubuntu 20.04] Zeigt den Tag auf dem Datum / der Uhr an
Begrenzen Sie die Anzahl der Threads mithilfe des Java Executor Service
Versuchen Sie es mit dem Ruby on Rails-Abfrageattribut