计算1901年1月1日到2016年12月31日具体有哪些日期星期日落在了当月的第一天
本帖最后由 pacelife 于 2015-11-1 00:19 编辑这个题目根据欧拉计划第19题改编而来,有兴趣的同学不妨试一下,需要用到编程的知识:
[*]1900年1月1日是星期一。
[*]30天的月份有:9月,4月,6月,11月。
[*]此外的月份都是31天,当然2月除外。
[*]2月在闰年有29天,其他时候有28天。
[*]年份可以被4整除的时候是闰年,但是不能被400整除的世纪年(100的整数倍年)除外。
计算1900年1月1日到2016年12月31日具体有哪些日期星期日落在了当月的第一天?
原题只需要计算多少天,现在我把题目改成算出具体的日期,难度增加了一点,能做出来还是很有成就感的,下面我贴出我自己的算法,其实按照这些完全可以做一个万年历了
看到日期就头疼,什么月份,星期几,几月几号。我觉得这些和天文联系更多,和数学联系较少。比如,为什么有的月份是30天,有的月份是31天,有的月份是28天?谁知道? 我用笨方法玩出来了
能解释一下你的解题思路吗 本帖最后由 fwsc 于 2015-11-1 20:44 编辑
很简单啊,用Excel里的表格和函数
1、首先用一张表格生成每个月第一天日期。
使用DATE()函数
做一排出来,其余竖着拖,填满表格。
2、用另一张表格计算该天是每周的第几天。
使用WEEKDAY()函数,横拖竖拖填满表格。
3、凡是余数为1的就是我们需要的日期。
使用条件格式,让其突显出来。
字体全为白色,凡是等于1的,背景改为红色,凡是不等于1的,背景改为白色。这样红色的就突显出来了,白色的就看不见了。
想用一张表格来处理,发现WEEKDAY()函数不认其内部嵌套函数,比如WEEKDAY(DATE(,,,),[]),它的参数只能是已经计算好的值,弄不懂怎么回事,就分两张表格来处理,略微费点劲。
页:
[1]