gpt4 book ai didi

java - 我的方法没有给我正确的数组维度?

转载 作者:行者123 更新时间:2023-12-01 20:26:50 26 4
gpt4 key购买 nike

首先,我很抱歉我的英语不好。我制作了自己的日历程序。我刚刚收到 1 个问题。它不检查正确的闰年。

private final int[][] sizeOfMonth= {
{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
{0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
};

这就是我的意见。

public int yearInput(String text){
String yearNumber = "";
boolean again = true;
while (again) {
System.out.print(text);
again = false;
try {
yearNumber = erfasseText();
int laenge = String.valueOf(yearNumber).length();

if (laenge != 4) {
again = true;
throw new Exception();
}
} catch (Exception e) {
this.output.yearWrongInput();
}
}
int converter = Integer.parseInt(jahresZahl);
return converter;

}

这是一个不同的类。

public int readYear() {
output.yearQuery();
int year = this.input.yearInput("Year: ");
return year;
}

检查闰年的代码。

public int getSizeOfMonth(int year, int month) {
return this.sizeOfMonth[kalenderFunction.leapYear(year)][month];

}

我无法更改下面的代码,因为我的教授告诉我这一点。

boolean isLeapYear(int year) {
return ((year % 4 == 0) && ((year % 100 != 0) || (year % 400 == 0)));
}

// 1 = true it is a leap year
// 2 = false it is not a leap year
int leapYear(int year) {
if (isLeapYear(year)) return 1;
else return 0;
}

最后一个是输出部分的缩短代码。

int monthSize= getSizeOfMonth(year, month);
for (int day= 1; day< monthSize; day++) {

System.out.print(getTwoLetters(day) + "\t");
if (weekdayInYear == 6) {
System.out.println();
// I know the weekdayInYear is not be initialized. thats just for next line.
}
}

我希望你能找到问题,因为对我来说,这段代码看起来非常干净。而且我没有找出问题所在。

输出让我很困惑。如果我在输入中输入闰年,我会得到 2 月 28 天。 (必须是arraylist的1而不是0)

现在这让我很困惑如果我输入的不是闰年,我会得到 27 天。 (27 为什么)数组中没有 27 的元素

*******************Febuary 2017*******************
Mo Tue We Thu Fr Sa Su
01 02 03 04 05
06 07 08 09 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27

我真的希望你能帮助我。我最后的希望。此致,马斯库林纳

最佳答案

你的问题是在这个循环的范围内:

for (int day = 1; day < monthSize; day++)

您将跳过该月的最后一天。

应该是:

for (int day = 1; day <= monthSize; day++)

关于java - 我的方法没有给我正确的数组维度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43777721/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com