programing

두 날짜 사이의 날짜?

lastcode 2023. 6. 16. 21:48
반응형

두 날짜 사이의 날짜?

두 날짜 사이에 며칠이 지났는지 확인하는 가장 빠른 방법은 무엇입니까?제가 지금 하고 있는 일은 이렇습니다.

math.floor((b - a).total_seconds()/float(86400))

문자 그대로 두 개의 날짜 개체가 있다고 가정하면 다른 개체에서 하나를 빼고 결과 개체에 일 수를 쿼리할 수 있습니다.

>>> from datetime import date
>>> a = date(2011,11,24)
>>> b = date(2011,11,17)
>>> a-b
datetime.timedelta(7)
>>> (a-b).days
7

또한 날짜 시간에도 작동합니다. 가장 가까운 날짜로 반올림됩니다.

>>> from datetime import datetime
>>> a = datetime(2011,11,24,0,0,0)
>>> b = datetime(2011,11,17,23,59,59)
>>> a-b
datetime.timedelta(6, 1)
>>> (a-b).days
6

당신은 전체 달력의 날을 의미합니까, 아니면 24시간의 그룹을 의미합니까?

24시간 동안 Python의 datetime을 사용한다고 가정하면 timeelta 객체는 이미 days 속성을 가지고 있습니다.

days = (a - b).days

달력 날짜의 경우 a를 가장 가까운 날짜로 반올림하고 b를 가장 가까운 날짜로 반올림하여 양쪽의 부분적인 날짜를 제거해야 합니다.

roundedA = a.replace(hour = 0, minute = 0, second = 0, microsecond = 0)
roundedB = b.replace(hour = 0, minute = 0, second = 0, microsecond = 0)
days = (roundedA - roundedB).days

시도:

(b-a).days

A타입의 밴드와 함께 시도했습니다.datetime.date.

다른 답변에 대한 내 의견을 참조합니다.이것이 제가 24시간과 달력 날짜를 기준으로 하루의 차이를 계산하는 방법입니다.days 속성은 24시간 동안 잘 작동하고 이 기능은 달력 검사에 가장 잘 작동합니다.

from datetime import timedelta, datetime

def cal_days_diff(a,b):

    A = a.replace(hour = 0, minute = 0, second = 0, microsecond = 0)
    B = b.replace(hour = 0, minute = 0, second = 0, microsecond = 0)
    return (A - B).days

if __name__ == '__main__':

    x = datetime(2013, 06, 18, 16, 00)
    y = datetime(2013, 06, 19, 2, 00)

    print (y - x).days          # 0
    print cal_days_diff(y, x)   # 1 

    z = datetime(2013, 06, 20, 2, 00)

    print (z - x).days          # 1
    print cal_days_diff(z, x)   # 2 

언급URL : https://stackoverflow.com/questions/8258432/days-between-two-dates

반응형