[英]how to check time between 7 00 and 18 00
我對此腳本有問題。
named_tuple = time.localtime()
time_string = time.strftime("%H:%M", named_tuple)
if time_string > "7:00" or time_string < "18:00":
print("day")
else:
print("evening")
請問我該如何檢查白天或晚上?
您可以從time.localtime()
返回的小時中獲取小時:
>>> time.localtime()
time.struct_time(tm_year=2019, tm_mon=6, tm_mday=12, tm_hour=19, tm_min=..., tm_sec=..., tm_wday=2, tm_yday=163, tm_isdst=...)
>>> _.tm_hour
19
然后,您只需將tm_hour
與所需的值進行比較:
Time = time.localtime()
if 7 <= Time.tm_hour <= 18:
print('Yeah!')
如果您需要更精確,請抓緊時間:
if (6, 45) <= (Time.tm_hour, Time.tm_min) <= (18, 5):
...
現在,第一個語句將始終匹配。 您的時間將始終大於7:00或小於18:00。
更改or
更改為and
,它應該起作用。
編輯:我剛剛看了一眼if
語句,發現它已損壞。 從根本上擁有the或在那里將防止else
語句被執行。 但是,再看一遍,發生的錯誤不僅僅是or
問題。
就像@ForceBru提到的那樣,您需要獲取小時數,以便不進行字符串比較。
您不能使用time_string來檢查它是否大於“ 7:00”或小於“ 18:00”,因為它會按字母數字順序對字符串進行排名。 例如,現在是12:32。 我的time_string的第一個字符為“ 1”,小於“ 7”,因此即使中午也將打印“ evening”。 另外,您想檢查是否晚於7:00和早於18:00。 也許您也可以添加更多選項,因為早於7:00的任何時間都會顯示“晚上”。 至於如何做,請參見ForceBru的答案,這使其變得非常簡單。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.