题目要求(小高组)
已知1900年1月1日是星期一,小希想快速知道今年2029年6月7日是星期几?如果想知道1900年1月1日以后的任意一天是星期几该怎么办?请你编写一个程序来帮帮小希吧。
具体要求:
1.准备工作
(1)采用默认的小猫角色,隐藏角色;
(2)采用默认白色背景;
2.功能实现
(1)输入2029年6月7日,程序以说的形式输出2029年6月7日是星期几?(星期一至星期日分别以数字1~7输出)
(2)输入1900年1月1日以后的任意一天,程序以说的形式输出是星期几?
样例输入1:20290607
样例输出1:20290607是星期4。
样例输入2:20251114
样例输出2:20251114是星期5。
解析
这道题如果改变一下,已知1900年1月1日是星期一,再过2014天是星期几?是不是就很简单了,这不就是我们小学数学中的一个典型的周期问题么。
那么原题输入的是一个日期,我们其实要计算的就是这个日期距离1900年1月1日一共差了多少天,然后用这个数字除以7取余数,就可以知道未来的指定日子是星期几了。
这样我们的解题目标就是计算2个日期之间一共差多少天,计算两个日期差多少天,我们可以分为三步:
1、两个日期间差多少个整年【重点要考虑闰年的计算】。
平年一年有365天,闰年一年有366天,两个日期间差多少个整年,其中有多少平年,多少闰年,我们就可以把年份差的这些天数给算出来了。
2、还差多少个整月【判断是不是润年】
有多少个整月,用来计算月份间的天数,这里涉及到当前年份是平年还是闰年,平年的2月28天,闰年的2月29天,还要考虑大月(31天),小月(30天),可以用列表存储对应月份的天数,这样我们就可以将月份差的天数给算出来。
3、最后计算还剩余天数
最后是算这个日期是当前月份的第几天,计算还剩余天数。
将这些天数加在一起,我们就可以算出一共有多少天了。
实现步骤:
1、新建变量“年”、“月”、“日”、“平年”、“闰年”、“总天数”、“i”、“n”;
新建列表“每月天数”,对列表初始化,一年中只有二月的天数不固定,我们留空。
2、输入日期,将日期拆分到变量“年”、“月”、“日”中,前4位是年,5-6位是月,7-8位是日,这是最简单的拆分方法;当然还可以通过数学的方法进行拆分(提示:取模、取余)
3、计算差多少个整年(区分平年闰年),得到对应的总天数
4、计算差多少个整月,并加入到总天数
5、加入剩余的天数到总天数
6、根据周期问题计算并得到结果
运行测试:
完整参考代码
![青少儿编程等级考试/Scratch小高组复赛真题-万年历 青少儿编程等级考试/Scratch小高组复赛真题-万年历](/Uploads/Editor/2024-06-24/6679346ca5517.jpg)
本站内容未经许可,禁止任何网站及个人进行转载。