2017-01-29 14 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 = 3、およびrd.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は週として日を表現する便利なメソッドです。

関連する問題