簡體   English   中英

如何檢查7 00到18 00之間的時間

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM