Ce face LocalDate.getDayOfWeek
getDayOfWeek() spune în ce zi a săptămânii cade data. Rezultatul este o valoare DayOfWeek: MONDAY, TUESDAY … SUNDAY. Numele sunt în engleză; pentru română folosește getDisplayName(TextStyle.FULL, Locale.of("ro")).
getValue() pe rezultat dă numărul zilei după standardul ISO: luni = 1, duminică = 7. Valorile se pot compara direct cu == sau folosi într-un switch.
Ce returnează
O valoare DayOfWeek.
Exemple
Exemplul 1: Ziua săptămânii în engleză și în română
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.format.TextStyle;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
Locale ro = Locale.of("ro");
LocalDate[] date = {LocalDate.of(2026, 10, 19), LocalDate.of(2026, 12, 25), LocalDate.of(2027, 1, 1)};
for (LocalDate d : date) {
DayOfWeek z = d.getDayOfWeek();
System.out.println(d + ": " + z + " = " + z.getDisplayName(TextStyle.FULL, ro) + " (nr. " + z.getValue() + ")");
}
}
}
Rezultat
2026-10-19: MONDAY = luni (nr. 1)
2026-12-25: FRIDAY = vineri (nr. 5)
2027-01-01: FRIDAY = vineri (nr. 5)
Exemplul 2: Program de lucru cu switch
import java.time.LocalDate;
public class Main {
static String program(LocalDate zi) {
return switch (zi.getDayOfWeek()) {
case SATURDAY -> "10:00 - 14:00";
case SUNDAY -> "închis";
default -> "09:00 - 18:00";
};
}
public static void main(String[] args) {
LocalDate zi = LocalDate.of(2026, 10, 23);
for (int i = 0; i < 3; i++) {
System.out.println(zi + " " + zi.getDayOfWeek() + ": " + program(zi));
zi = zi.plusDays(1);
}
}
}
Rezultat
2026-10-23 FRIDAY: 09:00 - 18:00
2026-10-24 SATURDAY: 10:00 - 14:00
2026-10-25 SUNDAY: închis
Greșeli frecvente
- Compari rezultatul cu un text:
d.getDayOfWeek().equals("MONDAY")este mereufalse. Compară cuDayOfWeek.MONDAY. - Presupui că săptămâna începe duminică (ca în SUA). În
DayOfWeek, luni are valoarea 1 și duminică 7.
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.format: Transformă data într-un text după un șablon, de exemplu dd.MM.yyyy sau „luni, 19 octombrie 2026”.LocalDate.plusDays: Returnează o dată nouă mutată cu un număr de zile înainte (plusDays) sau înapoi (minusDays).