我想知道timedelta在白天和黑夜范围内有多少小时。
>>> dt_start = datetime.datetime(2012, 8, 19, 16, 0)
>>> dt_stop = datetime.datetime(2012, 8, 20, 3, 0)
>>> dtd = dt_stop - dt_start
>>> print(dtd.seconds//3600)
>>> 11
Day = 7am-22pm
Night = 22pm-7am
对于此示例,正确的输出将是:
Day hours: 6:00
Night hours: 5:00
我将不胜感激任何帮助。
答案 0 :(得分:1)
您需要指定白天和黑夜的转换点,并计算相应的增量,然后计算增量到结束点:
day_start = 7
night_start = 22
day_hours = 0
night_hours = 0
if dt_start.hour < night_start:
dt_night = dt_start.replace(hour=night_start)
day_hours = (dt_night - dt_start).seconds // 3600
night_hours = (dt_end - dt_night).seconds // 3600
这是一个相当天真的设置,因为它不支持多天跨度等。把它视为一个起点。