파이썬
표준 라이브러리
날짜/시간 - datetime
계산, 비교

파이썬 datetime | 날짜 시간 계산

파이썬 datetime 모듈은 날짜와 시간을 계산하고 조작하기 위해 필요한 모든 기능을 제공합니다. 이 포스트에서는 datetime 모듈을 사용하여 다양한 날짜 및 시간 계산을 수행하는 방법에 대해 자세히 살펴보겠습니다.

1. 윤년 계산하기

윤년을 확인하는 것은 날짜 계산에서 중요한 요소입니다. 특히 우리나라와 같이 동아시아 문화권에서는 더 신경써야 하는 일입니다.

💡

윤년은 4년마다 한 번씩 발생하지만, 100의 배수인 해는 윤년이 아니고, 그 중에서도 400의 배수인 해는 윤년입니다.

다음 예제 코드는 calendar 모듈의 isleap 함수를 사용해 특정 연도가 윤년인지 쉽게 확인합니다.

import calendar
 
year = 2024  # 확인하고 싶은 연도
is_leap = calendar.isleap(year)
 
print(f"{year}년은 윤년입니까?: {'네' if is_leap else '아니오'}")

2. 날짜와 시간의 차이 계산하기

두 날짜 혹은 시간 사이의 차이를 계산하려면 datetime 모듈의 timedelta 클래스를 사용할 수 있습니다. 아래 예제 코드의 변수 diff 값은 timedelta 객체입니다.

from datetime import datetime
 
datetime1 = datetime(2023, 7, 7, 12, 0, 0)
datetime2 = datetime(2023, 7, 8, 12, 0, 0)
 
diff = datetime2 - datetime1
 
print(type(diff)) # <class 'datetime.timedelta'>
print(f"두 날짜와 시간 사이의 차이는 {diff.days}{diff.seconds}초입니다.")

timedelta 객체는 일(day), 초(second), 마이크로초(microsecond)의 세 가지 속성을 가지고 있습니다. 이것은 일, 시간, 분, 초 등을 쉽게 계산할 수 있도록 도와줍니다.

3. 시간 분 초 계산

특정 초를 시, 분, 초로 변환하려면 divmod 함수를 사용할 수 있습니다. 이 함수는 첫 번째 인수를 두 번째 인수로 나눈 후 몫과 나머지를 반환합니다.

seconds = 3661  # 변환하려는 초
 
minutes, seconds = divmod(seconds, 60)
hours, minutes = divmod(minutes, 60)
 
print(f"{hours}시간 {minutes}{seconds}초")

4. 문자열로 된 시간 계산하기

문자열 형태로 된 날짜와 시간을 처리하려면 strptime 함수를 사용하여 문자열을 datetime 객체로 변환할 수 있습니다.

from datetime import datetime
 
datetime_str = "2023-07-07 12:00:00"
datetime_obj = datetime.strptime(datetime_str, "%Y-%m-%d %H:%M:%S")
 
print(datetime_obj)

5. DataFrame에서 날짜와 시간의 차이 계산하기

pandas DataFrame에서 날짜와 시간의 차이를 계산하려면 pd.to_datetime 함수와 timedelta 메소드를 사용할 수 있습니다.

import pandas as pd
 
data = {'date': ['2023-07-07', '2023-07-08', '2023-07-09']}
df = pd.DataFrame(data)
 
df['date'] = pd.to_datetime(df['date'])
df['diff'] = df['date'].diff()
 
print(df)

6. Excel에서 날짜 계산하기

Excel에서 날짜를 계산하는 것도 파이썬으로 가능합니다. openpyxl 라이브러리를 사용하면 Excel 파일을 읽고 쓸 수 있습니다.

다음과 같이, datetime 모듈과 결합하면 Excel에서 날짜 계산을 수행할 수 있습니다.

from openpyxl import load_workbook
from datetime import datetime
 
wb = load_workbook('test.xlsx')
ws = wb.active
 
date_cell = ws['A1']  # 날짜가 있는 셀
date_cell.value = datetime.now()
 
wb.save('test.xlsx')

마치며

파이썬 datetime 모듈은 날짜와 시간 계산의 다양한 요구 사항을 처리하는 데 매우 유용합니다.

이 포스트에서는 알아본 내용이 날짜 시간 계산 작업에 도움이 되길 바랍니다.

copyright for 파이썬 datetime | 날짜 시간 계산

© 2023 All rights reserved.