陳新龍
高考是關乎著億萬中國人命運的考試,每年的時間都是安排在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. 假設今年的高考時間已經過去了就需要做判斷,當高考秒數小于當前秒數時,就是用倒計時結束積木。顯示高考已經結束。
高三的學生們,加油呀,預祝今年所有的高考學生都能金榜題名。
這道簡單的算法題目就完成了,往后我也會綜合更多的知識,把有趣的算法知識帶給大家。