2 回答
TA贡献1876条经验 获得超6个赞
if (h < Day.values().length && h > 0) {
应该改成
if (h < (Day.values().length + 1) && h > 0) {
TA贡献1804条经验 获得超3个赞
如果这是用于生产代码,Basil Bourque 的评论是正确的:您不应该开发自己的MyDate类,而应该依赖内置LocalDate类。
另一方面,如果正如我所假设的那样,这是一个编程练习,它是一个很好的练习,并且没有理由(我可以看到)为什么你不应该努力通过它。
计算星期几的公式是:
//calculating h value
int h = (q + (13 * (m + 1) / 5) + K + (K / 4) + (J / 4) + 5 * J) % 7;
(顺便说一句,请找到更好的变量名并遵守 Java 命名约定:变量名不能是大写字母。)我不明白这个公式,但假设它是正确的,它将星期几计算为0 = 周六,1 = 周日,直到 6 = 周五。要使用此数字查找您的Day枚举,请使用
output = Day.values()[(h + 6) % 7]; //getting respective enum value
由于hwill 始终为非负数且小于 7,因此您不需要封闭if语句。只是output无条件分配给。通过这些更改,我得到
Enter the date as day month year : 25 5 2019
25/5/2019 is a SATURDAY located in the FOURTH week of MAY 2019
The Calendar of MAY 2019 is :
Su Mo Tu We Th Fr Sa
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
添加回答
举报