Python - 어떤 날짜가 몇 주차인지 확인

파이썬에서 어떤 날짜가 몇 주차인지 계산하는 방법을 소개합니다.

1. isocalendar()로 날짜가 몇 주차인지 확인

date 또는 datetime은 isocalendar() 함수를 지원하며, IsoCalendarDate 객체를 리턴합니다. IsoCalendarDate는 국제 표준인 ISO 8601를 따르는 방식이며, 어떤 날짜가 그 해의 몇 주차인지 정하는 표준이라고 보시면 됩니다.

isocalendar(date)는 인자로 전달된 date의 년도, 주차, 요일 정보를 리턴합니다. 아래 예제에서는 2022-03-22에 대한 isocalendar 객체를 리턴받습니다. 리턴된 정보는 (year=2022, week=12, day=2)인데, 해당 날짜가 2022년에서 12주차이고, 화요일(그 주의 2일차)이라는 의미입니다. 월요일이라면 day가 1이며, 일요일이면 day가 7이됩니다.

import datetime

date = datetime.datetime(2022, 3, 22)
iso_calendar = date.isocalendar()
print(iso_calendar)

year = iso_calendar[0]
week = iso_calendar[1]
day = iso_calendar[2]
print(f"year={year}, week={week}, day={day}")

Output:

(2022, 12, 2)
year=2022, week=12, day=2

2. ISO Calendar의 주차 계산 방법

년도가 바뀌는 경계선에, 아래와 같이 주차를 계산하보면 2003년 12월 29이 2004년 1주차로 계산됩니다. 그 이유는 1월 1일이 월, 화, 수, 목요일으로 시작하면 그 해의 1주차가 되고 금, 토, 일요일로 시작하면 지난해의 마지막 주가 됩니다.

>>> from datetime import date
>>> date(2003, 12, 29).isocalendar()
datetime.IsoCalendarDate(year=2004, week=1, weekday=1)
>>> date(2004, 1, 4).isocalendar()
datetime.IsoCalendarDate(year=2004, week=1, weekday=7)

아래 그림은 2003년 12월과 2004년 1월의 달력입니다. 1월 1일이 목요일로 시작하고 있어, 2003년 12월 29일에서 2004년의 1월 3일까지는 2004년의 1주차가 됩니다. date

Loading script...

Related Posts

codechachaCopyright ©2019 codechacha