java 显示日历_JAVA显示日历(已知年和该年第一天为星期几)

这是我个人对这个题目理解,可能有些杂乱,仅供参考。

题目:

编写程序,提示用户输入年份和代表该年第一天是星期几的数字,然后在控制台上显示该年的日历表。

控制台显示结果如下:(我用_代表空格)

c4810e8cccb8

图1:以2018年为例

首先,说一下我认为在做这道题之前需要想到的几个要点:

1,首先,要判断输入的年份是平年还是闰年,判断闰年的条件是能被4整除且不能被100整除,或能 被400整除

这里,我写了一个单独的函数用来表示

c4810e8cccb8

图2:判断是否为闰年

2,第二,判断完平年还是闰年之后,还需要得出每月的天数,需要注意,2月的天数和平年闰年有关系

这里我使用的是switch语句,也可以使用循环等获取天数,2月的天数调用了前面判断是否为闰年的方法

c4810e8cccb8

图3:判断每个月的天数

3,最后,在知道每个月的天数后,需要知道这个月的第一天从星期几开始,这时就需要获取每个月开始的星期数:(上个月的天数%7+上个月第一天的星期数)%7

这里第一个月的星期数是由用户手动输入获取的,所以,第一个月的星期数,就是他本身,第二个月的星期数是前面一个月,也就是第一个月的星期数,用递归调用比较方便

c4810e8cccb8

图4:获取每个月第一天是星期几

当我写到这里的时候,我还没考虑7天换行的问题,就只是看能不能在正确的位置输出每个月的一号,于是开始写main函数

此处,kl为我的类名,(注:类名首字母要大写,不要像我一样小写),_代替空格

c4810e8cccb8

图5:main函数内部实现

通过运行后,得出下图所示的结果:

c4810e8cccb8

图6:没写换行的运行结果

说实话,看到这个结果,着实吓了一跳,随即,我就发现,我没写换行,但是每个月的第一天所在星期数是正确的,还是窃喜了一小下

接下来就开始换行的操作

换行的话,就是每到周六就换行,Sun对应的值是0,Sat对应的是6,也就是说,要判断当days为6时换行,就是判断days为星期几,我的思路是,当天的日期加上这个月开始的星期数余7就是当前日期的星期数,但是要注意,这个月开始的星期数是从0开始的,所以,总的来说:

当前日期的星期数= (当前日期+这个月开始的星期数-1)%7

c4810e8cccb8

图7:判断当前天数是星期几

判断完当前天数之后,就要在main函数里使用了,使用要

判断当前天数是否为周6,进行换行:

将以下语句放在图5的红线出即可,在if条件里调用dWeak函数

c4810e8cccb8

图8:判断是否为周六

这样就可以了,运行结果后,就会出现图1的样式

以上,是我在写完之后的一些理解,如果有更好的方式欢迎告知(^w^)

最后,用一张图片结束吧

c4810e8cccb8

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值