两天之间每天发生的次数

时间:2015-08-07 23:44:18

标签: python

我想找到一年中的第一天"发生在两个日期之间。

实施例。

service_start = datetime.date(2012, 5, 6)
service_end = datetime.date(2015, 7, 24)

我想看到的是在上述范围之间出现January 1st次的次数。在上面的例子中,答案将是3

2 个答案:

答案 0 :(得分:3)

我不知道我是否正确理解了这个问题,但是...我认为你可以通过获得这些年份之间的差异来做到这一点,只有第一个日期从1月1日开始的特殊情况,你在哪里添加一个。

service_start = datetime.date(2012, 5, 6)
service_end = datetime.date(2015, 7, 24)
first_days = (service_end.year - service_start.year) + (1 if service_start.month == 1 and service_start.day == 1 else 0)

答案 1 :(得分:0)

鉴于任何两年之间的过渡需要增加"年"一个,这意味着通过一年的第一天(或至少达到它),因此,减去"年" value是确定该值的最简单方法。

years = service_end.year - service_start.year

NB:您可能想要考虑2012,01,01到2015,01,01等边缘情况应该是什么 - 即如果范围在一年的第一天结束,那算得上吗?