为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

噜噜哒 2022-12-15 14:51:28
我的代码可以完美地编译和运行,但是当我的任何日期是星期六时,输出为“null”而不是“SATURDAY”。下面将举例说明这个问题。我试图在我的“getDayOfWeek”方法上更改我的 if 语句,但我似乎没有解决方案,我也试图从有经验的编码人员那里获得帮助,但由于 java 不是他们的主要语言,他们似乎在苦苦挣扎......预期成绩:java MyCalendar 29/02/201929/02/2019 in not a valid date, please re-input a valid date:         25/05/201925/05/2019 is a Saturday and located in the fourth week of May 2019The calendar of May 2019 is:SUN MON TUE WED THU FRI SAT            1   2   3   4  5   6   7   8   9   10  1112  13  14  15  16  17  1819  20  21  22  23  24  2526  27  28  29  30  31实际结果:25/05/2019 is a null located in the FOURTH week of MAY 2019The calendar of May 2019 is:SUN MON TUE WED THU FRI SAT            1   2   3   4  5   6   7   8   9   10  1112  13  14  15  16  17  1819  20  21  22  23  24  2526  27  28  29  30  31另一个日期(不是星期六)的结果:24/05/2019 is a FRIDAY located in the FOURTH week of MAY 2019The calendar of May 2019 is:SUN MON TUE WED THU FRI SAT            1   2   3   4  5   6   7   8   9   10  1112  13  14  15  16  17  1819  20  21  22  23  24  2526  27  28  29  30  31特定问题:输出在星期六当天的所有日期打印 null,而其他非星期六的日期将实现所需的正确输出。
查看完整描述

2 回答

?
HUX布斯

TA贡献1876条经验 获得超6个赞

if (h < Day.values().length && h > 0) {

应该改成

if (h < (Day.values().length + 1) && h > 0) {


查看完整回答
反对 回复 2022-12-15
?
狐的传说

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


查看完整回答
反对 回复 2022-12-15
  • 2 回答
  • 0 关注
  • 98 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信