weekday(), isoweekday() și isocalendar() în Python

Dată și oră Python 3.0+ (fromisocalendar: 3.8+)

Ziua din săptămână, numărul săptămânii din an și data dintr-o săptămână ISO.

Sintaxă
data.weekday()
data.isoweekday()
data.isocalendar()
date.fromisocalendar(an, saptamana, zi)

Ce face weekday(), isoweekday() și isocalendar()

weekday() returnează ziua din săptămână cu luni = 0 și duminică = 6. isoweekday() folosește convenția ISO: luni = 1, duminică = 7.

isocalendar() returnează anul ISO, numărul săptămânii (1-53) și ziua din săptămână; săptămâna 1 este cea care conține prima joi a anului. date.fromisocalendar() (Python 3.8+) face drumul invers: dintr-un an, o săptămână și o zi obții data.

Ce returnează

Întregi, sau un tuplu cu nume (year, week, weekday).

Exemple

Exemplul 1: Ziua din săptămână și weekend

from datetime import date
ZILE = ["luni", "marți", "miercuri", "joi", "vineri", "sâmbătă", "duminică"]
d = date(2026, 10, 19)
print(d.weekday(), d.isoweekday(), ZILE[d.weekday()])
for zi in [date(2026, 10, 24), date(2026, 10, 26)]:
    print(zi, "weekend" if zi.weekday() >= 5 else "zi lucrătoare")

Rezultat

0 1 luni
2026-10-24 weekend
2026-10-26 zi lucrătoare

Exemplul 2: Săptămâna din an

from datetime import date
cal = date(2026, 10, 19).isocalendar()
print(cal, cal.week)
print(date(2027, 1, 1).isocalendar())
print(date.fromisocalendar(2026, 43, 5))

Rezultat

datetime.IsoCalendarDate(year=2026, week=43, weekday=1) 43
datetime.IsoCalendarDate(year=2026, week=53, weekday=5)
2026-10-23

Greșeli frecvente

  • Amesteci convențiile: weekday() începe de la 0, isoweekday() de la 1. Un index greșit în lista de nume mută toate zilele cu una.

Comenzi înrudite