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
添加回答
舉報