使用 python 中的 time() 模块判断是白天还是晚上

F P*_*cha 1 python time

我开始写

import time
localtime = time.localtime()
print(localtime)
Run Code Online (Sandbox Code Playgroud)

但当地时间给出了九个属性

time.struct_time(tm_year=2018, tm_mon=7, tm_mday=31, tm_hour=22, 
                 tm_min=32, tm_sec=41, tm_wday=1, tm_yday=212, tm_isdst=1)
Run Code Online (Sandbox Code Playgroud)

我想通过将小时:分钟:秒与当地时间进行比较来确定Python中的上午还是下午。请建议

pax*_*blo 5

tm_hour=22
Run Code Online (Sandbox Code Playgroud)

是您感兴趣的字段(a),您只需使用 (例如,对于小时) 即可获取各个字段localtime.tm_hour

然后您可以使用它来确定现在是一天中的哪个部分,如下所示:

0 - 11 -> am, 12 - 23 -> pm
Run Code Online (Sandbox Code Playgroud)

一个简单的代码是:

import time
mytime = time.localtime()
if mytime.tm_hour < 12:
    print ('It is AM')
else:
    print ('It is PM')
Run Code Online (Sandbox Code Playgroud)

对于更梦幻的事物(例如白天和黑夜),最简单的解决方案是固定时间,例如:

0 - 5, 19 - 23 -> night, 6 - 18 -> day
Run Code Online (Sandbox Code Playgroud)

完成:

import time
mytime = time.localtime()
if mytime.tm_hour < 6 or mytime.tm_hour > 18:
    print ('It is night-time')
else:
    print ('It is day-time')
Run Code Online (Sandbox Code Playgroud)

当然,这完全取决于你如何定义白天和黑夜,因为太阳在一年中的不同时间、世界不同地区的不同时间升起和落下,并且在极北和极南纬度的极端情况下,有时一次不会几个月。


(a)从技术上讲,您可能应该使用小时、分钟,甚至可能是秒,因为可以说正午和午夜既不是子午线前也不是子午线后。但我们将在这个问题的背景下采用更简单的解决方案。

示例代码(忽略秒)如下:

import time
mytime = time.localtime()
myhour = mytime.tm_hour
mymin = mytime.tm_min
if myhour == 0 and mymin == 0:
    print('It is midnight')
elif myhour < 12:
    print ('It is AM')
elif myhour == 12 and mymin == 0:
    print('It is noon')
else:
    print ('It is PM')
Run Code Online (Sandbox Code Playgroud)