Scratch制作高考倒计时时钟
2021-07-01陈新龙
陈新龙
高考是关乎着亿万中国人命运的考试,每年的时间都是安排在6月7日和6月8日(寓意是录取吧!),我们能不能做个高考倒计时时钟,方便高三同学们查看倒计时时间。要想用Scratch来制作这个倒计时时钟,需要把当前系统时间到高考的时间通过数学计算转换为天数、分钟以及秒数,还要注意考虑如果当前时间已经错过今年的高考,需要提示高考已经结束(图1)。
我們知道1天=24小时=24×60分钟=24×60×60秒,要将时间换算成秒数这样方便我们计算时间差。首先确定高考开始时间为6月7日早上9点,计算1月1日到6月7日早上9点的秒数,然后再计算1月1日0时到当前时间的秒数,这两个秒数的时间差就是倒计时的总秒数了。将这个时间差转化成天、小时、分钟、秒就是要显示的结果了。
首先我们创建多个变量(当前秒数,高考秒数,天,时,分,秒,变量i)并且创建一个列表用于存放每月的天数。创建4个积木,1.计算1月1日0时至高考的秒数。2.计算1月1日0时到当前的秒数。3.将秒数换算成天、时、分、秒。4.倒计时结束,当超过6月7日后,更换显示效果。
1. 制作“计算1月1日0时到当前的秒数”的积木:设置变量“当前秒数”为0。由于每月天数不同,我们预先在“每月天数”列表中存储了各月份的天数。通过循环把已经过去的月份天数换算成秒数,存入变量“当前秒数”。然后把当月的天数换算成秒数增加入变量,接下来把小时数、分钟数转化成秒数增加进变量,最后增加入当前时间的秒数。这样就得到了当前时间的总秒数(图2)。
2. 计算1月1日0时至高考的秒数的积木:设置高考秒数为0,由于正常高考的日期为6月7日9时,所以我们设置循环执行5次,将过去的5个月的天数转化成秒数,再增加6天的时间和9时的总秒数(图3)。
3. 用高考时间的秒数减去当前时间的秒数。将两个积木换算的秒数相减就可以得出相差的秒数。
4. 将相差的秒数再换算成对应的月、天、时、分、秒。天数=向下取整(总秒数/每天的秒数);时=向下取整(总秒数除以每天的秒数的余数再除以每小时的秒数);分=向下取整(总秒数除以每天的秒数的余数再除以每小时的余数再除以一分钟秒数);秒=总秒数除以每天的秒数的余数再除以60的余数。这里数学换算的方法可能有点复杂,大家需要仔细理解。没有特别的技巧,都是数学思维的转换(图4)。
5. 假设今年的高考时间已经过去了就需要做判断,当高考秒数小于当前秒数时,就是用倒计时结束积木。显示高考已经结束。
高三的学生们,加油呀,预祝今年所有的高考学生都能金榜题名。
这道简单的算法题目就完成了,往后我也会综合更多的知识,把有趣的算法知识带给大家。