반응형
두 날짜 사이의 일? [복제]
이 질문에는 이미 답변이 있습니다.
두 날짜 사이에 하루가 몇 일이 지 났는지 확인하는 가장 짧은 방법은 무엇입니까? 여기 내가 지금하고있는 일이 있습니다.
math.floor((b - a).total_seconds()/float(86400))
문자 그대로 두 개의 날짜 개체가 있다고 가정하면 하나에서 다른 날짜 개체를 빼고 결과 timedelta
개체 를 며칠 동안 쿼리 할 수 있습니다 .
>>> from datetime import date
>>> a = date(2011,11,24)
>>> b = date(2011,11,17)
>>> a-b
datetime.timedelta(7)
>>> (a-b).days
7
그리고 datetimes에서도 작동합니다. 가장 가까운 날로 반올림한다고 생각합니다.
>>> 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 시간 그룹을 의미합니까?
Python의 datetime을 사용한다고 가정하면 timedelta 객체에는 이미 days 속성이 있습니다.
days = (a - b).days
달력 일의 경우 가장 가까운 날로 반올림하고 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
나는 b와 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
반응형
'Programing' 카테고리의 다른 글
Django REST Framework : ModelSerializer에 추가 필드 추가 (0) | 2020.07.18 |
---|---|
XAML에 여러 값 변환기를 연결하는 방법이 있습니까? (0) | 2020.07.18 |
Angular4-양식 제어를위한 값 접근자가 없음 (0) | 2020.07.18 |
도커 머신 : 기기에 남은 공간이 없습니다. (0) | 2020.07.18 |
모든 maven 의존성을 저장소에없는 디렉토리로 다운로드 하시겠습니까? (0) | 2020.07.18 |