[python] 특정 주의 첫날과 마지막날 구하기
from datetime import datetime, timedelta

def get_start_and_end_of_week(year, week, start_day=0):
    d = datetime(year, 1, 1)
    if start_day < d.weekday():
        d = d + timedelta(days=(start_day - d.weekday() + 7) % 7)
    else:
        d = d - timedelta(days=(d.weekday() - start_day) % 7)
    dlt = timedelta(days=(week - 1) * 7)
    start_of_week = d + dlt
    end_of_week = start_of_week + timedelta(days=6)
    return start_of_week, end_of_week

위 코드는 지정한 연도와 주차를 기준으로 특정 주의 첫날과 마지막날을 반환하는 함수를 정의한 예시입니다. 함수의 기본 매개변수로는 연도, 주차, 시작 요일을 받습니다. 이 함수를 사용하면 다음과 같이 특정 주의 첫날과 마지막날을 구할 수 있습니다.

start_date, end_date = get_start_and_end_of_week(2023, 25)
print(f"Start of the week: {start_date.strftime('%Y-%m-%d')}, End of the week: {end_date.strftime('%Y-%m-%d')}")

위 예시에서는 2023년 25주차의 첫날과 마지막날을 구한 후, 해당 결과를 출력하는 방법을 보여줍니다.

이 함수를 사용하여 특정 주차의 년도, 첫날, 마지막날을 쉽게 구할 수 있습니다. 이를 사용하면 주간 보고서 생성, 통계 분석 등과 같은 작업에 유용하게 활용할 수 있습니다.

관련 자료: