Mercurial > hg > timedelta
view timedelta.py @ 0:78a59d65bfcc
add timedelta
author | Dirk Olmes <dirk@xanthippe.ping.de> |
---|---|
date | Sat, 10 Jan 2009 03:50:20 +0100 |
parents | |
children |
line wrap: on
line source
from datetime import time def __toMicroseconds(time): result = time.microsecond result += time.second * 1000000 result += time.minute * 60 * 1000000 result += time.hour * 60 * 60 * 1000000 return result def timedelta(t1, t2): """Calculate the difference between to datetime.time objects The result is returned as a time object as the datetime.timedelta does not provide the same timeunits (hour, minute etc.) as the time objects that come as input to this routine. This method always returns a positive difference, i.e. the order in which the two time objects are passed does not matter. """ min = t1 max = t2 if t2 < t1: min = t2 max = t1 total1 = __toMicroseconds(min) total2 = __toMicroseconds(max) difference = total2 - total1 hours = ((difference / 1000000) / 60) / 60 difference -= hours * 60 * 60 * 1000000 minutes = (difference / 1000000) / 60 difference -= minutes * 60 * 1000000 seconds = difference / 1000000 difference -= seconds* 1000000 micro = difference return time(hour=hours, minute=minutes, second=seconds, microsecond=micro)