流程大概是 1.提示输入年号 2.获得输入的值赋给y 3.提示输入月份 4.获得输入的值赋给m 5.调用zdts()方法,并将y和m的值传递到这个方法进行运算 6.获得zdts()方法的返回值,赋给max 7.显示max的值
用日期类Calendar很容易实现
Scanner s = new Scanner(System.in);
System.out.println("请输入年份!!!");
int i = s.nextInt();
System.out.println("请输入月份!!!");
int j = s.nextInt();
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, i);
c.set(i, j, 0);
int a = c.getActualMaximum(Calendar.DAY_OF_MONTH);
System.out.println(a);
public class 万年历 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入一个年份:");
int year = input.nextInt();
System.out.println("请输入一个月份:");
int month = input.nextInt();
int day = 0;
for (int i = 1900; i < year; i++) {
if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) {
day = day + 366;
} else {
day = day + 365;
}
}
for (int i = 1; i < month; i++) {
if (i == 2) {
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
day = day + 29;
} else {
day = day + 28;
}
} else if (i == 4 || i == 6 || i == 9 || i == 11) {
day = day + 30;
} else {
day = day + 31;
}
}
System.out.println("日\t一\t二\t三\t四\t五\t六");
int kg = (day + 1) % 7;
for (int i = 1; i <= kg; i++) {
System.out.print("\t");
}
int t = 0;
if (month == 2) {
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
t = 29;
} else {
t = 28;
}
} else if (month == 4 || month == 6 || month == 9 || month == 11) {
t = 30;
} else {
t = 31;
}
for (int i = 1; i <= t; i++) {
System.out.print(i + "\t");
if ((day + i) % 7 == 6) {
System.out.println();
}
}
}
}
之前学习的时候写过一个万年历的例子,希望对你有所帮助~
没错,Calendar,Calendar,Calendar,Calendar