日期时间按天数分组的天数 [英] Datetime number of days difference group by months

查看:72
本文介绍了日期时间按天数分组的天数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想查找两个日期之间的日期,但按月分组.

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆