DateTime.weekday în Dart

Ziua săptămânii pentru o dată: 1 pentru luni, ..., 7 pentru duminică.

Sintaxă
int get weekday    // 1 = luni ... 7 = duminică

Ce face DateTime.weekday

weekday returnează ziua săptămânii ca număr, după standardul ISO: 1 = luni, 2 = marți, …, 6 = sâmbătă, 7 = duminică. Clasa are și constante cu nume: DateTime.monday, DateTime.sunday etc., mai ușor de citit decât numerele.

Cu weekday verifici ușor dacă o zi este în weekend (>= DateTime.saturday) sau găsești începutul săptămânii: scazi weekday - 1 zile.

Ce returnează

Un int între 1 și 7.

Exemple

Exemplul 1: Numele zilei

const zile = ['luni', 'marți', 'miercuri', 'joi', 'vineri', 'sâmbătă', 'duminică'];

void main() {
  for (var d in [DateTime(2026, 10, 19), DateTime(2026, 12, 25), DateTime(2027, 1, 1)]) {
    print('${d.day}.${d.month}.${d.year}: ${zile[d.weekday - 1]} (${d.weekday})');
  }
  print(DateTime(2026, 10, 25).weekday == DateTime.sunday);
}

Rezultat

19.10.2026: luni (1)
25.12.2026: vineri (5)
1.1.2027: vineri (5)
true

Exemplul 2: Zile lucrătoare într-o lună

Numărăm zilele de luni până vineri din noiembrie 2026 și aflăm data zilei de luni a săptămânii unei date.

void main() {
  var lucratoare = 0;
  for (var zi = 1; zi <= 30; zi++) {
    var d = DateTime.utc(2026, 11, zi);
    if (d.weekday <= DateTime.friday) lucratoare++;
  }
  print('Zile lucrătoare în noiembrie 2026: $lucratoare');

  var d = DateTime.utc(2026, 10, 22);
  var luni = d.subtract(Duration(days: d.weekday - DateTime.monday));
  print('Săptămâna începe pe ${luni.day}.${luni.month}');
}

Rezultat

Zile lucrătoare în noiembrie 2026: 21
Săptămâna începe pe 19.10

Greșeli frecvente

  • Crezi că duminica este 0, ca în JavaScript. În Dart duminica este 7, iar luni este 1.

Comenzi înrudite

  • DateTime.year: Proprietățile care dau componentele unei date: anul, luna, ziua, ora, minutul și secunda.
  • DateTime.add: Returnează o dată nouă, mutată înainte (add) sau înapoi (subtract) cu o durată dată.
  • DateTime: Un moment în timp (dată și oră), în fusul orar local sau în UTC. Constructorul creează o dată locală.