파이썬 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
모듈은 날짜와 시간 계산의 다양한 요구 사항을 처리하는 데 매우 유용합니다.
이 포스트에서는 알아본 내용이 날짜 시간 계산 작업에 도움이 되길 바랍니다.