두 날짜 사이의 날짜를 찾고 싶지만 월 및 연도별로 그룹화됩니다.
import calendar
from datetime import datetime, timedelta
from itertools import groupby
start = datetime(2020,12,30)
end = datetime(2021,12,15)
시작 연도와 종료 연도가 다르면 월별, 연도 별 결과 그룹이 필요합니다. 답변을 얻기 위해 코드를 어떻게 적용 할 수 있습니까?
정말 감사합니다
다른 답변에서 공유 한 아이디어를 바탕으로 map
원하는 그룹 에 날짜 목록을 만든 다음 사용하여 계산합니다.groupby
from datetime import datetime, timedelta
from itertools import groupby
start = datetime(2020,12,30)
end = datetime(2021,12,15)
dates = (start + timedelta(days=i) for i in range(1, (end - start).days + 1))
year_months = map(lambda x: (x.year, x.month), dates)
for v, g in groupby(year_months):
print(v, sum(1 for _ in g))
Output:
(2020, 12) 1
(2021, 1) 31
(2021, 2) 28
(2021, 3) 31
(2021, 4) 30
(2021, 5) 31
(2021, 6) 30
(2021, 7) 31
(2021, 8) 31
(2021, 9) 30
(2021, 10) 31
(2021, 11) 30
(2021, 12) 15
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다