【掌控】网络授时的数字时钟
早些时候写过一个帖子,讲到网络授时数字时钟,其实代码都是抄小唐的,我只是改了一小点,然后拿出去显摆。出来混,早晚要还的,现在终于到把这段代码消化的时候了。
写代码时常常用到时间模块
import time
time 模块提供用于获取当前时间和日期、测量时间间隔和延迟的函数。
这个帖子,主要用到一个新的(对我来说)函数。
【新知】
time.localtime()将一个以秒计的时间转换为一个包含下列内容的8元组:(年、月、日、小时、分钟、秒、一周中某日、一年中某日)。若未提供秒或为None,则使用RTC时间。
[*]年包括世纪(例如2014)
[*]月为 1-12
[*]日为 1-31
[*]小时为 0-23
[*]分钟为 0-59
[*]秒钟 0-59
[*]周中某日为 0-6 (对应周一到周日)
[*]年中某日为 1-366
【代码】
import ntptime,network # 导入国际标准时间、网络模块
from mpython import*
from machine import Timer# 导入计时模块
mywifi=wifi()
mywifi.connectWiFi("ssid","password")# WiFi设置
try:
ntptime.settime()
except OSError :
oled.DispChar("ntp链接超时,请重启!",0,20)
oled.show()
else:
def get_time(_): #定义时钟刷屏时间
t = time.localtime()
print("%d年%d月%d日 %d:%d:%d"%(t,t,t,t,t,t))
oled.DispChar("{}年{}月{}日" .format(t,t,t),20,8)
oled.DispChar("{}:{}:{}" .format(t,t,t),38,25)
oled.show()
oled.fill(0)
tim1 = Timer(1)
tim1.init(period=1000, mode=Timer.PERIODIC, callback=get_time)
学习了前面网络授时模拟钟表的内容,其它的代码都挺明白了,重点是:
def get_time(_): #定义时钟刷屏时间
t = time.localtime()
print("%d年%d月%d日 %d:%d:%d"%(t,t,t,t,t,t))
oled.DispChar("{}年{}月{}日" .format(t,t,t),20,8)
oled.DispChar("{}:{}:{}" .format(t,t,t),38,25)
oled.show()
oled.fill(0)
【time.localtime()】
上面有资料,将一个以秒计的时间转换为一个包含下列内容的8元组:(年、月、日、小时、分钟、秒、一周中某日、一年中某日)。若未提供秒或为None,则使用RTC时间。
[*]年包括世纪(例如2014)
[*]月为 1-12
[*]日为 1-31
[*]小时为 0-23
[*]分钟为 0-59
[*]秒钟 0-59
[*]周中某日为 0-6 (对应周一到周日)
[*]年中某日为 1-366
print("%d年%d月%d日 %d:%d:%d"%(t,t,t,t,t,t))
这句代码是让程序REPL同步输出time.localtime()给出的8元组内容中的前6项。
%d 格式符十进制整数依次对应后面()内元组的数据。
oled.DispChar("{}年{}月{}日" .format(t,t,t),20,8)
格式化字符,{}对应填入format()元组中的内容。
好吧,新手小白,每学习一点都挺困难。
谢谢分享! 这个函数以前还真不知道
页:
[1]