万年历思路详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
万年历思路详解
功能描述:输入年份和月份显示出当前月份的日历。
想法:1.得求出当前月的天数。(这个算法在以前我们前面的练习中都已经实现。)
2.知道天数后用for循环实现天数的输出(这里遇到两个难点:
(1).当前月的第一天是星期几。(也就是第一天从那个位置开始输出)
(2).输出的时候在星期六的时候得需要换行。
一.重点中的重点:求当月的第一天是星期几。
分析:我们怎么才能知道当前月第一天是星期几呢?一开始我们根本无法下手去做,我们可以找一个具体的时间作为参考,我们找1900年的1月1日作为参考因为这一天刚好是星期一。如果我们算出输入的天数与1900年1月1日共相差多少天,我们就可以得出输入月份第一天是星期几。
原因:得出了输入的天数与1900年1月1日相差总的天数,用总天数%7如果等于0则就是星期天。若是其它的数就是相对应的星期数。
例:比如算1900年的1月9日是星期几。就用1月1日到1月9日有多少天%7,得出式子:9%7=2 那九号就是星期二。
1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10
星期一星期二
1.1那现在问题又出来了我们要算的是当前日期距1900年1月1日共有多少天。
那这个问题我们可以分两个部分开始算
1.算1900年到该年一共有多少天。用变量yearday代表
2.算从该年的第一月到该月有多少天。用变量monthday 代表
3.两者相加再加一(因为当前的那一天还得加上),就得到了距1900年1月1日的天数。具体的实现方法:
1.算出这一年是闰年还是平年,用个boolean 变量接受(用来作为算当月的天数的条件)。
2.算1900年到该年一共有多少天yearday,可用for循环来实现如果第i年是闰年yearday 则加366否则加365。
3.算该年的第一月到该月有多少天monthday
用 for循环实现:从第一月到该月有多少天 monthdy = monthday+day(当前月的天数)
里面再用switch()判断每个月的天数day(闰年的2月是29天,平年是28天。)
现在就算出了总天数 = yearday + monthday +1;
该月的第一天是星期几也就算出来了用总天数%7
重点二:按格式输出。
1.若第一天是星期几就用for循环输出几个”/ t”以对齐日期。
2.用for循环输出天数(i从到指定的天数day),但当日期是星期六的时候得执行换行操
作(依照算星期几的方法应该不难实现)。