多次发现时间差

问题描述 投票:0回答:1

我正在创建一个应用程序,该应用程序查看日出和日落时间,以了解白天/夜晚的持续时间是小时还是小时。目前,我有两个python datetime对象,它们代表持续时间的开始和结束时间,并且我已经在datetime对象中有了日落和日出的时间。我知道我的代码很乱,但是当我知道我要处理的问题时,我会修复它。

到目前为止,我的代码:

if(datetime_object_1 <= datetime_object_2 <= sunrise <= sunset):
    return (0,differencehours(datetime_object_1, datetime_object_2))
elif(datetime_object_1 <= sunrise <= datetime_object_2 <= sunset):
    return (differencehours(datetime_object_2, sunrise), differencehours(datetime_object_1, sunrise))
elif(sunrise <= datetime_object_1 <= datetime_object_2 <= sunset):
    return (differencehours(datetime_object_1, datetime_object_2),0)
elif(sunrise <= datetime_object_1 <= sunset <= datetime_object_2):
    return (differencehours(datetime_object_1, sunset), differencehours(datetime_object_2, sunset))
elif(sunrise <= sunset <= datetime_object_1 <= datetime_object_2):
    return (0,differencehours(datetime_object_1, datetime_object_2))
else:
    return (None, None)

def difference(datetime_str_1, datetime_str_2):
    if(datetime_object_1 > datetime_object_2):
        datetime_object_1_replace = datetime_object_1
        datetime_object_2_replace = datetime_object_2
        datetime_object_2 = datetime_object_1_replace
        datetime_object_1 = datetime_object_2_replace
    difference = datetime_object_2 - datetime_object_1
    return difference

def differencehours(datetime_str_1, datetime_str_2):
    return (difference(datetime_str_1, datetime_str_2).total_seconds / 3600.0)
python time python-datetime
1个回答
1
投票

在python中找到日期时间对象之间的时差非常非常简单。就像delta = datetime1 - datetime2一样简单。要在几秒钟内获得它,请使用delta.total_seconds()演示:

import time, datetime
a = datetime.datetime.now()
time.sleep(1.5)
b = datetime.datetime.now()
delta = b - a
print(delta.total_seconds())
© www.soinside.com 2019 - 2024. All rights reserved.