2017-01-29 50 views
1

也許我不明白relativedelta背後的意圖,但行爲不一致的情況下,較小的子區間被摺疊成較大的子區間,以便表示最小的子區間集似乎是不可取的。具體而言,幾個月似乎已經崩潰了幾年,但幾天和幾周仍然不明確(即天數=#周* 7 +剩餘天數)。python-dateutil的relativedelta行爲不一致

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 = 1rd.months = 1rd.weeks = 3rd.days = 25

這是爲什麼?我希望子區間互相排斥。

回答

3

從源代碼:

@property 
def weeks(self): 
    return self.days // 7 
@weeks.setter 
def weeks(self, value): 
    self.days = self.days - (self.weeks * 7) + value * 7 

weeks所以是一個方便的方法來表示天爲周。