Ce face DayOfWeek
DayOfWeek are șapte valori, de la MONDAY la SUNDAY. O obții din LocalDate.getDayOfWeek() și o compari cu == sau o folosești într-un switch.
getValue() dă numărul după ISO: luni = 1, duminică = 7. DayOfWeek.of(3) face drumul invers. plus(n) și minus(n) se rotesc în cerc: duminică plus o zi este luni.
getDisplayName(TextStyle.FULL, Locale.of("ro")) dă „luni”, „marți” etc.; TextStyle.SHORT dă „lun.”, „mar.”. DayOfWeek.values() returnează toate zilele, în ordine.
Ce returnează
Valori ale enumerării; getValue() returnează int, getDisplayName un String.
Exemple
Exemplul 1: Toate zilele, în română
import java.time.DayOfWeek;
import java.time.format.TextStyle;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
Locale ro = Locale.of("ro");
for (DayOfWeek z : DayOfWeek.values()) {
System.out.println(z.getValue() + " " + z + " = " + z.getDisplayName(TextStyle.FULL, ro)
+ " (" + z.getDisplayName(TextStyle.SHORT, ro) + ")");
}
}
}
Rezultat
1 MONDAY = luni (lun.)
2 TUESDAY = marți (mar.)
3 WEDNESDAY = miercuri (mie.)
4 THURSDAY = joi (joi)
5 FRIDAY = vineri (vin.)
6 SATURDAY = sâmbătă (sâm.)
7 SUNDAY = duminică (dum.)
Exemplul 2: Zile de gardă prin rotație
import java.time.DayOfWeek;
import java.util.EnumMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
String[] colegi = {"Ana", "Mihai", "Elena"};
Map<DayOfWeek, String> garda = new EnumMap<>(DayOfWeek.class);
DayOfWeek zi = DayOfWeek.FRIDAY;
for (int i = 0; i < 5; i++) {
garda.put(zi, colegi[i % colegi.length]);
zi = zi.plus(1);
}
System.out.println(garda);
System.out.println("Zi de weekend? " + (DayOfWeek.of(6) == DayOfWeek.SATURDAY));
}
}
Rezultat
{MONDAY=Ana, TUESDAY=Mihai, FRIDAY=Ana, SATURDAY=Mihai, SUNDAY=Elena}
Zi de weekend? true
Greșeli frecvente
- Presupui că
getValue()pornește de la 0 sau că săptămâna începe duminică. Luni este 1, duminică 7. - Folosești
ordinal()în loc degetValue().ordinal()pornește de la 0.
Comenzi înrudite
LocalDate.getDayOfWeek: Returnează ziua săptămânii pentru dată, ca valoare a enumerării DayOfWeek (MONDAY … SUNDAY).Month: Enumerarea celor 12 luni (JANUARY = 1 … DECEMBER = 12), cu lungimea lunii și numele traduse.LocalDate.format: Transformă data într-un text după un șablon, de exemplu dd.MM.yyyy sau „luni, 19 octombrie 2026”.DateTimeFormatter: Descrie cum se scrie sau se citește o dată ca text; ofPattern(„dd.MM.yyyy”) creează un format din litere.