猿问

在我的输出中输入特定日期时,我收到“null”

我的代码可以完美地编译和运行,但是当我的任何日期是星期六时,输出为“null”而不是“SATURDAY”。下面将举例说明这个问题。

我试图在我的“getDayOfWeek”方法上更改我的 if 语句,但我似乎没有解决方案,我也试图从有经验的编码人员那里获得帮助,但由于 java 不是他们的主要语言,他们似乎在苦苦挣扎......

预期成绩:


java MyCalendar 29/02/2019

29/02/2019 in not a valid date, please re-input a valid date:         25/05/2019

25/05/2019 is a Saturday and located in the fourth week of May 2019

The calendar of May 2019 is:

SUN MON TUE WED THU FRI SAT

            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

实际结果:


25/05/2019 is a null located in the FOURTH week of MAY 2019


The calendar of May 2019 is:

SUN MON TUE WED THU FRI SAT

            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

另一个日期(不是星期六)的结果:


24/05/2019 is a FRIDAY located in the FOURTH week of MAY 2019


The calendar of May 2019 is:

SUN MON TUE WED THU FRI SAT

            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

特定问题:输出在星期六当天的所有日期打印 null,而其他非星期六的日期将实现所需的正确输出。


噜噜哒
浏览 99回答 2
2回答

HUX布斯

if&nbsp;(h&nbsp;<&nbsp;Day.values().length&nbsp;&&&nbsp;h&nbsp;>&nbsp;0)&nbsp;{应该改成if&nbsp;(h&nbsp;<&nbsp;(Day.values().length&nbsp;+&nbsp;1)&nbsp;&&&nbsp;h&nbsp;>&nbsp;0)&nbsp;{

狐的传说

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

相关分类

Java
我要回答