안녕하세요 오늘은 datetime 모듈에 포함되어 있는 timedelta 사용법에 대해 알아보도록 하겠습니다. 이 함수는 정해진 날짜와 날짜 사이 혹은 시간간의 차이를 계산해 주는 클래스입니다. 우리가 프로그래밍을 하다보면 항상 현재 시간으로부터 떨어진 시간을 계산한다던지? 아니면 미래의 시간으로부터 현재 시간이 얼마나 차이가 있는지 등등 다양한 필요 사항이 생기게 됩니다.
바로 timedelta는 이러한 상황에서 손쉽게 처리할 수 있도록 도와줍니다. 예를 들어, 날짜와 시간 간의 연산, 특정 날짜와의 차이 계산, 시간 간격 측정 등을 수행할 수 있습니다.
날짜와 시간의 덧셈과 뺄셈 예제
특정 날짜와 시간을 더하거나 빼는 예제를 한번 알아보도록 하겠습니다. 우선 timedelta 객체를 만들고 내가 계산할 날짜를 지정한 후 시간을 덧셈 혹은 뺄셈을 수행하면 됩니다. 예를 들어, 현재 날짜에 10일을 더하는 예제 코드는 다음과 같습니다.
from datetime import datetime, timedelta
now_date = datetime.now()
after_date = now_date + timedelta(days=10)
print("지금 현재의 날짜:", now_date)
print("10일 후의 날짜:", after_date)
위의 예제에서는 timedelta 객체를 사용하여 현재 날짜에 10일을 더해 after_date에 저장합니다. 간단하게 days라는 항목을 통해 10일의 시간을 더할 수 있었습니다.
특정 날짜와의 차이 계산하기 예제
timedelta를 사용하여 특정 날짜와의 차이를 계산할 수 있습니다. 예를 들어, 오늘과 내년의 특정 날짜 사이의 남은 일수를 계산하는 예제 코드는 다음과 같습니다.
from datetime import datetime, timedelta
now_date = datetime.now()
special_date= datetime(now_date.year, 5, 22) # 특정 날짜를 5월 22일로 가정
if now_date > special_date: special_date = special_date.replace(year=now_date.year + 1)
left_day = (special_date - now_date).days
print("앞으로 남은 날:", left_day)
위의 예제에서는 timedelta 객체를 사용하여 오늘 날짜와 생일 사이의 차이를 계산하고, 남은 일수를 출력합니다.
시간 간격 계산하기 예제
timedelta를 사용하여 시간 간격도 계산할 수 있습니다. 예를 들어, 어떠한 프로그램이 첫 코드를 실행한 시점부터 마지막 코드를 실행한 시점까지 걸린 시간을 계산하는 예제를 확인해 보겠습니다.
from datetime import datetime, timedelta
s_t = datetime.now()
for i in range(0,10000):
a = 1
b = a + 1
e_t = datetime.now()
t = e_t - s_t
print("소요 시간:", t)
위의 예제에서는 작업을 수행하는 동안 timedelta를 사용하여 시작 시간과 종료 시간의 차이를 계산하고, 소요 시간을 출력합니다.
오늘은 timedeta를 사용하여 각 시간 간격 변환 방법에 대해 알아보았습니다. 더 다른 방법에 대해 다음 포스팅에서 다루도록 하겠습니다.