也许我不理解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
。这是为什么?我希望子间隔可以互斥。
最佳答案
从源代码:
@property
def weeks(self):
return self.days // 7
@weeks.setter
def weeks(self, value):
self.days = self.days - (self.weeks * 7) + value * 7
因此
weeks
是一种方便的方法,可以将天表示为星期。关于python - python-dateutil的relativedelta的行为不一致,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41924120/