也许我不理解relativedelta背后的意图,但是行为上的不一致,将较小的子区间折叠成更大的子区间,以便表示最小的一组子区间,似乎是不可取的。具体地说,月似乎会崩溃成年,但天和周仍然是模棱两可的(即天数=周数*7+剩余天数)。
from dateutil.parsers import parse as dparse
from dateutil.relativedelta import relativedelta as rdelta
start = dparse('12/3/15')
end = dparse('1/28/17')
rd = rdelta(end, start)这里有rd.years = 1、rd.months = 1、rd.weeks = 3和rd.days = 25。
为什么会这样呢?我希望子区间是彼此互斥的。
发布于 2017-01-30 02:03:17
从源代码中:
@property
def weeks(self):
return self.days // 7
@weeks.setter
def weeks(self, value):
self.days = self.days - (self.weeks * 7) + value * 7因此,weeks是一种将天表示为周的便捷方法。
https://stackoverflow.com/questions/41924120
复制相似问题