Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 두 날짜·시간 사이에 24시간이 경과했는지 확인하는 방법

Python에서 두 datetime 객체 사이에 24시간(1일)이 지났는지 확인하려면 간단한 날짜 연산이 필요합니다. 핵심 원리는 다음과 같습니다.

기본 원리

datetime 객체를 서로 빼면 그 차이가 timedelta 객체로 반환됩니다. 이 timedelta 객체는 정수(int)와 직접 비교할 수 없으므로, 먼저 초 단위 값을 추출한 뒤 숫자와 비교하거나, 다른 timedelta 객체와 비교해야 합니다.

24시간은 86400초에 해당합니다. 따라서 total_seconds() 메서드를 사용해 경과 시간을 초 단위로 변환한 후 비교하는 방식을 사용할 수 있습니다.

예제 코드

from datetime import datetime

NUMBER_OF_SECONDS = 86400  # 24시간 = 86400초

first = datetime(2017, 10, 10)
second = datetime(2017, 10, 12)

if (second - first).total_seconds() > NUMBER_OF_SECONDS:
    print("하루 이상 지났습니다!")

실행 결과

하루 이상 지났습니다!

위 예제에서 두 날짜의 차이가 2일이므로 조건문이 참이 되어 메시지가 출력됩니다.

더 간결한 방법: timedelta 객체끼리 비교하기

timedelta 객체는 서로 직접 비교할 수 있으므로, 초 단위 변환 없이 아래처럼 작성하는 것이 더 파이썬답고 가독성도 좋습니다.

from datetime import datetime, timedelta

first = datetime(2017, 10, 10)
second = datetime(2017, 10, 12)

if second - first > timedelta(days=1):
    print("하루 이상 지났습니다!")

정리

두 날짜·시간의 차이를 구하고(datetime끼리 뺄셈), 결과인 timedeltatotal_seconds()로 변환해 86400초와 비교하거나, timedelta(days=1)와 직접 비교하면 24시간 경과 여부를 손쉽게 확인할 수 있습니다.