- def addOneDay(self, timedatestruct):
- day = timedatestruct.tm_mday
- month = timedatestruct.tm_mon
- year = timedatestruct.tm_year
-
- if calendar.isleap(year):
- leap = 29
- else:
- leap = 28
- monthdays = [0, 31, leap, 31, 30, 31, 30, 31, 31,30, 31,30, 31]
- day += 1
-
- # check for sane dates and correct if needed
- if day > monthdays[month]:
- day = 1
- month += 1
- if month > 12:
- month = 1
- year += 1
+ def addOneDay(self, timedatestruct):
+ oldHour = timedatestruct.tm_hour
+ newdate = (datetime.datetime(timedatestruct.tm_year, timedatestruct.tm_mon, timedatestruct.tm_mday, timedatestruct.tm_hour, timedatestruct.tm_min, timedatestruct.tm_sec) + datetime.timedelta(days=1)).timetuple()
+ if localtime(mktime(newdate)).tm_hour != oldHour:
+ return (datetime.datetime(timedatestruct.tm_year, timedatestruct.tm_mon, timedatestruct.tm_mday, timedatestruct.tm_hour, timedatestruct.tm_min, timedatestruct.tm_sec) + datetime.timedelta(days=2)).timetuple()
+ return newdate