/ / Obliczanie za pomocą okresów czasu - python, datetime

Obliczanie za pomocą okresów czasu - python, datetime

potrzebuję twojej pomocy.

Na przykład - czas pracy:

start = datetime.datetime(2014, 11, 19, 7, 15)
end   = datetime.datetime(2014, 11, 19, 11, 15)

Teraz mamy czas pracy 4 godziny.

Potrzebuję funkcji, modułu lub pomocy, w której mogę uzyskać "resztę dnia".

Na przykład - czas wolny:

freetime_begin_1 = datetime.datetime(2014, 11, 19, 0, 0)
freetime_end_1 = datetime.datetime(2014, 11, 19, 7, 15)
freetime_begin_2 = datetime.datetime(2014, 11, 19, 11, 15)
freetime_end_2 = datetime.datetime(2014, 11, 19, 23, 59)

Mam nadzieję, że rozumiesz o co mi chodzi.

Dzięki.

Odpowiedzi:

0 dla odpowiedzi № 1

Możesz użyć tego, na przykład:

#!/usr/bin/env python
#coding:utf-8
import datetime


def dt_desc(dt):
dt = str(dt)
days = dt[:-8]
dt = str(dt)[-8:]
h,m,s = map(lambda s:int(s.strip()),dt.split(":"))

ret = "%s"%days if len(days)!=0 else ""
ret += "%s hours "%h if h != 0 else ""
ret += "%s minutes "%m if m != 0 else ""
ret += "%s seconds"%s if s != 0 else ""
return ret

start = datetime.datetime(2014, 11, 19, 7, 15)
end   = datetime.datetime(2014, 11, 19, 11, 15)
print dt_desc(end-start)

freetime_begin_1 = datetime.datetime(2014, 11, 19, 0, 0)
freetime_end_1 = datetime.datetime(2014, 11, 19, 7, 14)
freetime_begin_2 = datetime.datetime(2014, 11, 19, 11, 16)
freetime_end_2 = datetime.datetime(2014, 11, 19, 23, 59)

print dt_desc(freetime_end_1 - freetime_begin_1)
print dt_desc(freetime_end_2 - freetime_begin_2)

freetime_begin_3 = datetime.datetime(2014, 1, 19, 11, 16)
freetime_end_3 = datetime.datetime(2014, 11, 19, 23, 59)

print dt_desc(freetime_end_3 - freetime_begin_3)