gpt4 book ai didi

java - Java 新手 - 需要让这个数组工作...不知道如何 :(

转载 作者:行者123 更新时间:2023-12-01 11:59:51 25 4
gpt4 key购买 nike

import javax.swing.JOptionPane;

public class Calendar31 {
static String strDays = " %2d ";

public static void main(String[] args) {

String getYear = JOptionPane.showInputDialog(null, "Enter Year to Show: ");
int year = Integer.parseInt(getYear);
String startingDay = JOptionPane.showInputDialog(null, "Enter Starting Day (0 = Sunday, 6 = Saturday): ");
int startDay = Integer.parseInt(startingDay);

String[] months = new String[12];
months[0] = "January";
months[1] = "February";
months[2] = "March";
months[3] = "April";
months[4] = "May";
months[5] = "June";
months[6] = "July";
months[7] = "August";
months[8] = "September";
months[9] = "October";
months[10] = "November";
months[11] = "December";

for (int y = 0; y <= 11; y++) {
System.out.println(" " + months[y] + " " + year);
System.out.println("---------------------------------");
System.out.println("Sun Mon Tue Wed Thu Fri Sat");

for (int x = 0; x < startDay; x++){
System.out.print(" ");
}

for (int d = 1; d <= getNumDays(1, year); d++){
System.out.printf(strDays, d);
if ((d + startDay) % 7 == 0){
System.out.println();
}
}
System.out.println();
System.out.println();
}
}

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

public static int getNumDays(int m, int year) {
int[] numDays = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int retval = numDays[m-1];
if ((m == 2) && (isLeapYear(year))){
retval++;
}
return retval;
}
}

所以,我有这段代码。该项目是制作一个java程序,根据您输入的年份和第一个月的开始日期显示年历...制作了另一种方法来确定闰年,因为很久以前有一个白痴决定我们需要额外的1/一年中的 4 天...所以当该月是第二个月时,这确实有效。在该方法中,数组有 12 个条目,这 12 个条目是 Jan、Feb、Mar 等。现在,在顶部的主代码块中有一行:

for (int d = 1; d <= getNumDays(1, year); d++) {

其中 1 是从 getNumDays 中的数组中提取第一个 int...出于某种原因,我无法弄清楚我哪里出错了,但是 1 需要消失,我们需要“m”来代替它,如 getNumDays 中所定义。但无论如何我都无法弄清楚所需的语法...我确信它很简单。有什么快速帮助吗?谢谢!

最佳答案

也许我遗漏了一些东西,但是你不能改变你引用“y”的“1”吗?如:

for (int d = 1; d <= getNumDays(y, year); d++){

毕竟,外层循环从0计数到11,并将值赋给y。然后,您可以使用该值调用 getNumDays 函数并返回“y”月的正确天数。

此外,您可能需要考虑使用制表符而不是预定义数量的空格。这将确保您的列对齐。例如:

System.out.println("Sun\tMon\tTue\tWed\tThu\tFri\tSat");

for (int x = 0; x < startDay; x++){
System.out.print("\t");
}

关于java - Java 新手 - 需要让这个数组工作...不知道如何 :(,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28057602/

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