오늘은 이전 timedelta 사용 방법 예제 포스팅과 더불어 더 다양한 예제를 알아보도록 하겠습니다.
반복 주기 생성하기 예제
timedelta를 사용하여 오늘 날짜로부터 정해진 기간마다의 반복 주기를 계산할 수도 있습니다.
예를 들어, 매주 화요일에 이벤트가 발생하는 경우, 다음 화요일의 날짜를 계산하는 예제 코드는 다음과 같습니다
from datetime import datetime, timedelta
now_date = datetime.now()
while now_date.weekday() != 1: # 1은 화요일을 가리키는 값
now_date += timedelta(days=1)
next_tuesday = now_date
print("next 화요일 :", next_tuesday)
위의 예제에서는 timedelta를 사용하여 현재 날짜에서 하루씩 더해가며 다음 화요일 날짜를 계산한 후 출력합니다.
이런 계산을 통해 반복적인 날짜를 알 수 있습니다.
날짜와 시간 비교하기 예제
timedelta를 사용하여 날짜와 시간을 비교할 수 있습니다.
어떤 코드가 실행됐던 시간이나 날짜를 기억하고 있다면 오늘 날짜로부터 이전인지 이후인지 알 수 있습니다.
from datetime import datetime, timedelta
now_date = datetime.now()
target_date = datetime(2023, 7, 7) # 타겟을 2023년 7월 7일로 설정
if now_date > target_date: print("해당 일자를 이미 넘어갔습니다.")
else: print("이벤트가 아직 발생하지 않았습니다.")
위 예제 결과는 현재 날짜가 타겟 날짜(2023년 7월 7일) 보다 크기 때문에 이미 해당 날짜를 넘어섰다고 판단합니다.
따라서 "해당 일자를 이미 넘어갔습니다." 라는 문구가 출력됩니다.
이처럼 간단하게 날짜를 비교할 수 있습니다.
날짜와 시간의 포맷 변환하기 예제
timedelta를 사용하여 날짜와 시간의 포맷을 변환할 수 있습니다.
예를 들어, 특정 시간 간격을 시, 분, 초 단위로 표시하는 예제 코드는 다음과 같습니다.
from datetime import timedelta
time_delta = timedelta(hours=1, minutes=20, seconds=35)
h = time_delta.seconds // 3600
m = (time_delta.seconds % 3600) // 60
s = time_delta.seconds % 60
print("시간:", h)
print("분:", m)
print("초:", s)
위 예제는 1시간 20분 35초라는 특정 시간을 초단위로 계산하여 시, 분, 초로 표현하는 예제입니다.
초 단위 계산도 가능하지만 시, 분 단위 계산도 가능합니다.
정해진 날짜와 시간 값을 변경하는 예제
timedelta를 사용하여 정해진 날짜와 시간 값을 변경할 수 있습니다.
예를 들어, 현재 날짜에서 5일을 빼는 예제 코드는 다음과 같습니다
from datetime import datetime, timedelta
now_date = datetime.now()
t = now_date - timedelta(days=5)
print("지금으로부터 5일 전 :", t)
위의 예제에서는 timedelta를 사용하여 현재 날짜에서 5일을 빼어 t 변수에 저장합니다.
오늘은 timedelta에 대해 추가적으로 학습하는 예제를 통해 날짜 계산하는 방법을 배워봤습니다.