【Time系列三】简单的计时器(秒表)

        之前在 "for与while的洪荒之力" 中介绍到计时器,不过那样弄感觉好麻烦啊,

 碰巧昨天学Java的时候,讲到求余可以用来求时间 !

        for与while链接: http://www.cnblogs.com/Ruby517/p/5738344.html

        所以今天我们来用一种更简单的方法求出时间: 首先,先来个简单的,看看求

余符号 "%" 究竟有什么用? 通常,一周的第0天是周日,第一天是周一 ......

 

 1 # coding: utf-8
 2 
 3 print u"今天是周二..."
 4 
 5 date = {
 6     0: u"周日",
 7     1: u"周一",
 8     2: u"周二",
 9     3: u"周三",
10     4: u"周四",
11     5: u"周五",
12     6: u"周六"    
13 }
14 
15 goal_date = (2 + 100) % 7 
16 
17 if goal_date in date:
18     print u"一百天后是%s!!!" % (date.get(goal_date))

大家可以想想,这里要是不用字典,那得有七个if/else语句,分别用来表示周日/一/二/三/四/五/六

 

-----------------------------------------------------------------------------------------------------

方法1: 利用while循环和从1递增的数分别求除(得到分钟)和求余(得到秒)得到时间的计时器

 1 # coding: utf-8
 2 
 3 import os
 4 import time
 5 
 6 seconds = 0
 7 
 8 while True:
 9         seconds += 1
10         curr_min = str(seconds / 60)
11         curr_sec = str(seconds % 60)
12         
13         if len(curr_sec) != 2:
14             if len(curr_min) != 2:        
15                 print "0%s:0%s" % (curr_min, curr_sec)
16             else:
17                 print "%s:0%s" % (curr_min, curr_sec)   
18         else:
19             if len(curr_min) != 2:
20                 print "0%s:%s" % (curr_min, curr_sec)
21             else:
22                 print "%s:%s" % (curr_min, curr_sec)
23         
24         time.sleep(1)
25         os.system("cls")
26        
27         
计时器

         注意,这里容易出错的是清屏指令的位置,如果把它放在time.sleep(1)的前面, 将会导致刚

一打印出来就即刻清屏,也就是根本显示不出时间信息......

 

方法2: 是用while循环和从1到61的for循环,当秒迭代到60时,我们再让它变成00,同时让分钟加1

 1 # coding: utf-8
 2 
 3 import os, time
 4 
 5 curr_min = 0
 6 
 7 while True:
 8     for curr_sec in range(1, 61):
 9         if curr_sec == 60:
10             curr_sec = 00
11             curr_min += 1
12                    
13         if len(str(curr_sec)) != 2:
14             if len(str(curr_min)) != 2:
15                 print "0%s:0%s" % (curr_min, curr_sec)
16             else:
17                 print "%s:0%s" % (curr_min, curr_sec)
18         else:
19              if len(str(curr_min)) != 2:
20                 print "0%s:%s" % (curr_min, curr_sec)
21              else:
22                 print "%s:%s" % (curr_min, curr_sec)
23 
24         time.sleep(1)
25         os.system("cls")
点我

 

转载于:https://www.cnblogs.com/Ruby517/p/5869682.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; AT89C52时钟程序 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;*********************************************************************************************; ;以下程序能用于24小时计时,能作为秒表使用,能定时闹铃1分钟(也可关). ;使用方法:开机后在00:00:00起开始计时,(1)长按P1.0进入调分状态:分单元闪烁 ;按P1.0加1,按P1.1减1.再长按P1.0进入时调整状态,时单元闪烁,加减调整同调分. ;按长按退出调整状态. (2)按下P1.1进入秒表状态:按P1.2暂停,再按P1.2秒表清零,再按 ;P1.2秒表又启动,按P1.1退出秒表回到时钟状态. (3)按P1.3进入设定闹时状态: 00:00: -,可进 ;行分设定,按P1.2分加1,再按P1.3为时调整,00:00:- ,按P1.2时加1,按P1.1闹铃有效,显示为00:00:-0,再按 ;P1.1闹铃无效(显示00:00:- ,),按P1.3调闹钟结束.在闹铃时可按P1.3停闹,不按闹铃1分钟. ;定时器T0、T1溢出周期为50MS,T0为秒计数用, T1为调整时闪烁及秒表定时用, ;P1.0、P1.1、P1.2、P1.3为调整按钮,P0口为字符输出口,P2为扫描口,P1.7为蜂呜器口,采用共阳显示管。 ;50H-55H为闹钟定时单元,60H-65H为秒表计时单元,70H-75H为显示时间单元,76H-79H为分时计时单元。 ;03H标志=0时钟闪烁,=1秒表, 05H=0,不闹铃,=1要闹铃. 07H每秒改变一次,用作间隔呜叫. ;***********************************************************************************************; DISPFIRST EQU 30H ;显示首址存放单元 BELL EQU P1.7 ;小喇叭 CONBS EQU 2FH ;存放报时次数 ; ;**************************************** ;; 中断入口程序 ;; ;****************************************
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值