2018-12-25 09:24:50 [显示全部楼层]
4377浏览
查看: 4377|回复: 2

[入门教程] 【掌控】网络授时的数字时钟

[复制链接]
早些时候写过一个帖子,讲到网络授时数字时钟,其实代码都是抄小唐的,我只是改了一小点,然后拿出去显摆。
出来混,早晚要还的,现在终于到把这段代码消化的时候了。

【掌控】网络授时的数字时钟图1

写代码时常常用到时间模块

import time
time 模块提供用于获取当前时间和日期、测量时间间隔和延迟的函数。


这个帖子,主要用到一个新的(对我来说)函数。


【新知】


time.localtime()

将一个以秒计的时间转换为一个包含下列内容的8元组:(年、月、日、小时、分钟、秒、一周中某日、一年中某日)。若未提供秒或为None,则使用RTC时间。

  • 年包括世纪(例如2014)
  • 月为 1-12
  • 日为 1-31
  • 小时为 0-23
  • 分钟为 0-59
  • 秒钟 0-59
  • 周中某日为 0-6 (对应周一到周日)
  • 年中某日为 1-366
【掌控】网络授时的数字时钟图2
【代码】
[mw_shl_code=python,true]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[0],t[1],t[2],t[3],t[4],t[5]))
        oled.DispChar("{}年{}月{}日" .format(t[0],t[1],t[2]),20,8)
        oled.DispChar("{}:{}:{}" .format(t[3],t[4],t[5]),38,25)
        oled.show()
        oled.fill(0)

    tim1 = Timer(1)

    tim1.init(period=1000, mode=Timer.PERIODIC, callback=get_time)[/mw_shl_code]

学习了前面网络授时模拟钟表的内容,其它的代码都挺明白了,重点是:

def get_time(_):   #定义时钟刷屏时间
        t = time.localtime()
        print("%d年%d月%d日 %d:%d:%d"%(t[0],t[1],t[2],t[3],t[4],t[5]))
        oled.DispChar("{}年{}月{}日" .format(t[0],t[1],t[2]),20,8)
        oled.DispChar("{}:{}:{}" .format(t[3],t[4],t[5]),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[0],t[1],t[2],t[3],t[4],t[5]))
这句代码是让程序REPL同步输出time.localtime()给出的8元组内容中的前6项。
%d   格式符    十进制整数  依次对应后面()内元组的数据。


oled.DispChar("{}年{}月{}日" .format(t[0],t[1],t[2]),20,8)

格式化字符,{}对应填入format()元组中的内容

好吧,新手小白,每学习一点都挺困难。


【掌控】网络授时的数字时钟图3



44107900  初级技师

发表于 2018-12-25 22:15:43

谢谢分享!
回复

使用道具 举报

碧海  见习技师

发表于 2021-4-20 23:27:59

这个函数以前还真不知道
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail