[python] 특정 날짜와 시간에서 특정 시간이 지난 뒤의 주의 첫날과 마지막날 구하기

파이썬을 사용하여 특정 날짜와 시간에서 특정 시간이 지난 뒤의 주의 첫날과 마지막날을 구하는 방법은 datetime 모듈을 이용하는 것입니다. 아래는 그 예제 코드입니다.

from datetime import datetime, timedelta

def get_week_start_end_date(date_str, days_after):
    # 주 시작을 계산하고 싶은 날짜와 시간을 파싱합니다
    date = datetime.strptime(date_str, '%Y-%m-%d %H:%M:%S')

    # 특정 시간이 지나는 만큼 timedelta를 계산합니다
    delta = timedelta(days=days_after)

    # 입력된 날짜에 timedelta를 더해 새로운 날짜를 구합니다
    new_date = date + delta

    # 새로운 날짜의 요일과 해당 주의 첫날을 구합니다
    day_of_week = new_date.weekday()
    start_of_week = new_date - timedelta(days=day_of_week)

    # 해당 주의 마지막날을 구합니다 (첫날에 6일을 더하면 해당 주의 마지막날이 됩니다)
    end_of_week = start_of_week + timedelta(days=6)

    return start_of_week, end_of_week

이제 get_week_start_end_date 함수를 사용하여 특정 날짜와 시간에서 7일 후의 주의 첫날과 마지막날을 구할 수 있습니다.

date_str = '2023-10-15 12:00:00'
days_after = 7
start_date, end_date = get_week_start_end_date(date_str, days_after)
print(f"주의 첫날: {start_date}, 주의 마지막날: {end_date}")

위 코드를 실행하면 2023년 10월 15일부터 7일 후인 2023년 10월 22일부터 2023년 10월 28일 사이의 주를 구할 수 있습니다.

이와 유사한 방법으로 원하는 시간만큼의 다른 주의 첫날과 마지막날을 구할 수 있습니다. 예를 들어, 14일 후의 주의 첫날과 마지막날을 구하고 싶다면 days_after 값을 14로 변경하면 됩니다.

이러한 방법을 사용하여 파이썬에서 특정 시간 후의 주의 첫날과 마지막날을 손쉽게 구할 수 있습니다.

참고 자료: