Viewing file: duration.py (1.21 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
import datetime
def _get_duration_components(duration): days = duration.days seconds = duration.seconds microseconds = duration.microseconds
minutes = seconds // 60 seconds = seconds % 60
hours = minutes // 60 minutes = minutes % 60
return days, hours, minutes, seconds, microseconds
def duration_string(duration): """Version of str(timedelta) which is not English specific.""" days, hours, minutes, seconds, microseconds = _get_duration_components(duration)
string = '{:02d}:{:02d}:{:02d}'.format(hours, minutes, seconds) if days: string = '{} '.format(days) + string if microseconds: string += '.{:06d}'.format(microseconds)
return string
def duration_iso_string(duration): if duration < datetime.timedelta(0): sign = '-' duration *= -1 else: sign = ''
days, hours, minutes, seconds, microseconds = _get_duration_components(duration) ms = '.{:06d}'.format(microseconds) if microseconds else "" return '{}P{}DT{:02d}H{:02d}M{:02d}{}S'.format(sign, days, hours, minutes, seconds, ms)
def duration_microseconds(delta): return (24 * 60 * 60 * delta.days + delta.seconds) * 1000000 + delta.microseconds
|