LocalDate.getDayOfWeek în Java

Returnează ziua săptămânii pentru dată, ca valoare a enumerării DayOfWeek (MONDAY … SUNDAY).

Sintaxă
DayOfWeek getDayOfWeek()

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 mereu false. Compară cu DayOfWeek.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).