Convert a timedelta to days, hours and minutes
If you have a
td.days already gives you the "days" you want.
timedelta values keep fraction-of-day as seconds (not directly hours or minutes) so you'll indeed have to perform "nauseatingly simple mathematics", e.g.:
def days_hours_minutes(td): return td.days, td.seconds//3600, (td.seconds//60)%60
days, hours, minutes = td.days, td.seconds // 3600, td.seconds // 60 % 60
As for DST, I think the best thing is to convert both
datetime objects to seconds. This way the system calculates DST for you.
2010, 3, 13, 8, 0, 0) # 2010 March 13 8:00 AMm14 = datetime(2010, 3, 14, 8, 0, 0) # DST starts on this day, in my time zonemktime(m14.timetuple()) - mktime(m13.timetuple()) # difference in seconds82800.0_/3600 # convert to hours23.0m13 = datetime(