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ă.