如果兩者時間是yyyy-MM-dd HH:mm:ss的,我們首先要進行轉化壹下,將時間轉成python中的datetime類型,利用它的API方便進行操作。
按妳的需求:要求夜間22:00:00至早上10:00:00這段時間不計算時間,兩者的時間可能有幾種情況,下面是示例代碼都包括了可能的情況:如果不方便閱讀代碼,下面也會有代碼的截圖,方便閱讀:
from dateutil.parser import parse
# 開始時間
start_time = parse("2023-06-18 09:00:00")
# 結束時間
end_time = parse("2023-06-18 11:00:00")
# 定義時間差
time_diff = ""
# 開始時間結束時間都計算時間
if 10 <= start_time.hour <= 22 and 10 <= end_time.hour <= 22:
time_diff = end_time - start_time
# 開始時間不計算時間,結束時間計算時間
elif (start_time.hour <= 10 or start_time.hour >= 22) and (10 <= end_time.hour <= 22):
time_diff = end_time - start_time.replace(hour=10)
# 開始時間計算時間,結束時間計算時間
elif (end_time.hour <= 10 or end_time.hour >= 22) and (10 <= start_time.hour <= 22):
time_diff = end_time.replace(hour=22) - start_time
# 兩者都不計算時間
elif (start_time.hour <= 10 or start_time.hour >= 22) and (end_time.hour <= 10 or end_time.hour >= 22):
pass
print(f"時間相差:{time_diff.total_seconds() / 60} 分鐘") ?# 輸出分鐘數
如果有用,還請希望采納