import java.util.Scanner;
public class MyCalendar {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("如果您想查看某年的日历,请输入1");
System.out.println("如果您想查看某天的星期,请输入2");
int user_input = scanner.nextInt();
if (user_input == 1) {
int year = scanner.nextInt();
//已知2023年一月一日是星期日
int temp;
int first_day;
if (year < 2023) {
for (int i = year; i < 2023; i++) {
int days = 0;
if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) {
days += 366;
} else {
days += 365;
}
temp = days % 7;
first_day = 7 - temp; //每年的1月1日是星期几
if (temp == 0) {
first_day = 0; //将星期日记作0
}
}
} else if (year == 2023) {
first_day = 0; //2023一月一日是星期日
} else {
int days = 0;
for (int i = 2023; i < year; i++) {
if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) {
days += 366;
} else {
days += 365;
}
temp = days % 7;
first_day = temp;
}
}
int day = 1;
int[] a;
if (year % 4 == 0 && year % 100 != 0 || year % 400 ==0) {
a = new int[]{31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
} else {
a = new int[]{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
}
int m;
for (m = 1; m <= 12; m++) {
System.out.println("Sun Mon Tue Wed Thu Fri Sat");
for (int i = 0; day < a[m]; day++) {
for (int j = 0; j < first_day; j++) {
}
}
}
} else if (user_input == 2) {
} else {
System.out.println("请输入有效的数字!");
}
}
}
编写一个交互系统,用户输入年份即可查看当年的日历,输入日期即可查看星期。
这个程序尚未完成,正在编写第一部分,我定义了一个first_day用来表示输入年份的1月1日是星期几,first_day是局部变量,但我在所有的if else下都对其赋值了,但是在后面的循环里报错:first_day可能尚未初始化,这是怎么回事?要怎么修改?望指点
本人大一下学期初学Java,上学期学的C,有人说我代码风格有点乱,明显的C程序编程习惯,请问大家是怎么规划/设计自己的代码的?