日期时间按天数分组的天数 [英] Datetime number of days difference group by months
本文介绍了日期时间按天数分组的天数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想查找两个日期之间的日期,但按月分组.
I want to find the days between two dates, but grouped by months.
示例:
start = datetime(2020,10,1)
end = datetime(2020,12,15)
end - start
> datetime.timedelta(days=75)
我希望将这75天按月分组:
I want these 75 days grouped by months:
- 十月30天
- 11月30天
- 12月的15天
先谢谢了.
推荐答案
使用 itertools.groupby
获取每月的天数:
import calendar
from datetime import datetime, timedelta
from itertools import groupby
start = datetime(2020,10,1)
end = datetime(2020,12,15)
for v, g in groupby(((start + timedelta(days=i)).month for i in range(1, (end - start).days + 1))):
l = sum(1 for _ in g)
print('{} {} in {}'.format(l, 'day' if l == 1 else 'days', calendar.month_name[v]))
打印:
30 days in October
30 days in November
15 days in December
这篇关于日期时间按天数分组的天数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文