Ce face Month
Month are câte o valoare pentru fiecare lună: JANUARY … DECEMBER. Se poate folosi direct în LocalDate.of(2026, Month.MARCH, 8) și se obține din getMonth().
getValue() dă numărul lunii (1-12), iar Month.of(n) face drumul invers. length(anBisect) spune câte zile are luna, maxLength() numărul maxim posibil. firstMonthOfQuarter() dă prima lună a trimestrului.
Numele în română se obțin cu getDisplayName(TextStyle.FULL, Locale.of("ro")): „ianuarie”, „februarie” etc.
Ce returnează
Valori ale enumerării; getValue() și length() returnează int.
Exemple
Exemplul 1: Lunile în română, cu numărul de zile
import java.time.Month;
import java.time.format.TextStyle;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
Locale ro = Locale.of("ro");
for (Month m : Month.values()) {
System.out.printf("%2d %-10s %d zile%n", m.getValue(), m.getDisplayName(TextStyle.FULL, ro), m.length(false));
}
}
}
Rezultat
1 ianuarie 31 zile
2 februarie 28 zile
3 martie 31 zile
4 aprilie 30 zile
5 mai 31 zile
6 iunie 30 zile
7 iulie 31 zile
8 august 31 zile
9 septembrie 30 zile
10 octombrie 31 zile
11 noiembrie 30 zile
12 decembrie 31 zile
Exemplul 2: Anotimpul și trimestrul unei luni
import java.time.Month;
public class Main {
static String anotimp(Month m) {
return switch (m) {
case DECEMBER, JANUARY, FEBRUARY -> "iarnă";
case MARCH, APRIL, MAY -> "primăvară";
case JUNE, JULY, AUGUST -> "vară";
case SEPTEMBER, OCTOBER, NOVEMBER -> "toamnă";
};
}
public static void main(String[] args) {
for (int nr : new int[] {1, 4, 8, 10}) {
Month m = Month.of(nr);
System.out.println(m + ": " + anotimp(m) + ", trimestrul începe în " + m.firstMonthOfQuarter());
}
System.out.println("Februarie în an bisect: " + Month.FEBRUARY.length(true));
}
}
Rezultat
JANUARY: iarnă, trimestrul începe în JANUARY
APRIL: primăvară, trimestrul începe în APRIL
AUGUST: vară, trimestrul începe în JULY
OCTOBER: toamnă, trimestrul începe în OCTOBER
Februarie în an bisect: 29
Greșeli frecvente
- Scrii luna ca număr de la 0.
Month.of(0)aruncăDateTimeException; ianuarie este 1. - Folosești
ordinal()ca număr al lunii. Pornește de la 0; foloseștegetValue().
Comenzi înrudite
DayOfWeek: Enumerarea zilelor săptămânii, de la MONDAY (1) la SUNDAY (7), cu nume traduse prin getDisplayName.LocalDate.getYear: Citesc părțile unei date: anul (getYear), luna ca Month (getMonth) și ziua din lună (getDayOfMonth).LocalDate.of: Creează o dată fixă din an, lună și zi; aruncă DateTimeException dacă data nu există.LocalDate.isLeapYear: isLeapYear spune dacă anul datei este bisect; lengthOfMonth dă numărul de zile din luna datei (28-31).