Fixes for date math and different calendars
svn: r10060
This commit is contained in:
parent
bb11347869
commit
ac8b31151b
@ -184,12 +184,13 @@ class Date:
|
|||||||
self.sortval = 0
|
self.sortval = 0
|
||||||
self.set_yr_mon_day(*source)
|
self.set_yr_mon_day(*source)
|
||||||
elif type(source) == str:
|
elif type(source) == str:
|
||||||
|
if (calendar != None or
|
||||||
|
modifier != None or
|
||||||
|
quality != None):
|
||||||
|
raise AttributeError("can't set calendar, modifier, or quality with string date")
|
||||||
import DateHandler
|
import DateHandler
|
||||||
source = DateHandler.parser.parse(source)
|
source = DateHandler.parser.parse(source)
|
||||||
if calendar == None:
|
self.calendar = source.calendar
|
||||||
self.calendar = Date.CAL_GREGORIAN
|
|
||||||
else:
|
|
||||||
self.calendar = self.lookup_calendar(calendar)
|
|
||||||
self.modifier = source.modifier
|
self.modifier = source.modifier
|
||||||
self.quality = source.quality
|
self.quality = source.quality
|
||||||
self.dateval = source.dateval
|
self.dateval = source.dateval
|
||||||
@ -287,7 +288,10 @@ class Date:
|
|||||||
if d1 < d2:
|
if d1 < d2:
|
||||||
d1, d2 = d2, d1
|
d1, d2 = d2, d1
|
||||||
date1, date2 = date2, date1
|
date1, date2 = date2, date1
|
||||||
# d1 - d2 (1998, 12, 32) - (1982, 12, 15) =
|
# d1 - d2 (1998, 12, 32) - (1982, 12, 15)
|
||||||
|
if self.calendar != other.calendar:
|
||||||
|
diff = date1.sortval - date2.sortval
|
||||||
|
return (diff/365, (diff % 365)/30, (diff % 365) % 30)
|
||||||
# days:
|
# days:
|
||||||
if d2[2] > d1[2]:
|
if d2[2] > d1[2]:
|
||||||
# months:
|
# months:
|
||||||
|
Loading…
Reference in New Issue
Block a user