DayOfWeek în Java

Enumerarea zilelor săptămânii, de la MONDAY (1) la SUNDAY (7), cu nume traduse prin getDisplayName.

Sintaxă
import java.time.DayOfWeek;

enum DayOfWeek { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }
int getValue()                                   // 1 = luni … 7 = duminică
DayOfWeek plus(long zile)
String getDisplayName(TextStyle stil, Locale limba)

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 de getValue(). 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.