Wie man die Anzahl der Tage in einem bestimmten Monat mit Hilfe der Java-Kalender?
Erstelle ich ein einfaches Programm, das dem Benutzer ermöglicht, zu sehen, wie viele Tage zwischen den Monaten, die Sie gesetzt.
Beispielsweise Von Januar - März
Bekomme ich den aktuellen Tag des Monats mit dieser:
Calendar.DAY_OF_MONTH
Was ich will, ist, wie kann ich geben Sie einen Wert im Monat?
Ich habe diesen einfachen code:
public static void machineProblemTwo(int startMonth, int endMonth) {
int[] month = new int[0];
int date = 2015;
for(int x = startMonth; x <= endMonth; x++) {
System.out.println(x + " : " + getMaxDaysInMonth(x,date));
}
}
public static int getMaxDaysInMonth(int month, int year){
Calendar cal = Calendar.getInstance();
int days = cal.getActualMaximum(Calendar.DAY_OF_MONTH); //how can I supply the month here?
return days;
}
Wie kann ich das tun? Können Sie mir helfen mit diesem?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie den Konstruktor für
GregorianCalendar
wo Sie passieren das Jahr, Monat und Tag. Vergessen Sie nicht, dass die Monate gehen von 0 bis 11 (0 für Januar, 11 für Dezember).Calendar monthStart = new GregorianCalendar(2015, 1, 1);
wird es wieder 28, die ist falsch, es sollte 31new GregorianCalendar(year, month - 1, 1);
auf die erste Zeile der Methode.Müssen Sie den Kalender, um werden in diesem Jahr und den Monat vor und bittet um den maximalen Wert, z.B. mit
(Oder mit der Kalender-Konstruktor als pro David ' s Antwort.)
Also:
Alternativ - und vorzugsweise - die Verwendung Joda Time oder Java 8:
(Ich bin sicher, es muss eine einfachere Möglichkeit für Joda Zeit, aber ich habe diese noch nicht gefunden haben...)
Können wir es auch tun: