Python日期将多年日期跨度分隔为单年跨度

2024-04-25 18:59:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我不确定这是不是合适的标题,但我找不到更好的

假设我有一个约会时间跨度:

 12 Nov 2012 - 15 May 2014

有没有一种简单的方法可以将这个跨度分为一年跨度,比如:

12 Nov 2012 - 31 Dec 2012
01 Jan 2013 - 31 Dec 2013
01 Jan 2014 - 15 May 2014

Tags: 方法标题novmayjandec约会跨度
1条回答
网友
1楼 · 发布于 2024-04-25 18:59:37

您可以在一年内轻松地将以datetime.date对象表示的范围转换为(start, end)对象序列:

from datetime import date

def year_boundaries(start, end):
    while start.year != end.year:
        yield start, date(start.year, 12, 31)
        start = date(start.year + 1, 1, 1)
    yield (start, end)

演示:

>>> for start, end in year_boundaries(date(2012, 11, 12), date(2014, 5, 15)):
...     print start, '-', end
... 
2012-11-12 - 2012-12-31
2013-01-01 - 2013-12-31
2014-01-01 - 2014-05-15

相关问题 更多 >

    热门问题