需求
输入年和月,打印当月的日历
代码
import java.util.Scanner;
public class test01 {
/**
万年历
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入年份:");
int year = sc.nextInt();
System.out.println("请输入月份:");
int month = sc.nextInt();
int allDayOfYear = 0;
for (int i = 1900; i < year; i++) {
if (i % 4 == 0 && i % 100!= 0 || i % 400 == 0) {
allDayOfYear += 366;
} else {
allDayOfYear += 365;
}
}
int allDayOfMonth = 0;
for (int i = 1; i < month; i++) {
if (i == 2) {
if (year % 4 == 0 && year % 100!= 0 || year % 400 == 0) {
allDayOfMonth += 29;
} else {
allDayOfMonth += 28;
}
}else if (i == 4 || i == 6 || i == 9 || i == 11) {
allDayOfMonth += 30;
}else {
allDayOfMonth += 31;
}
}
System.out.println("获取1月到输入月的总天数:" + allDayOfMonth);
int allDay = allDayOfMonth + allDayOfYear+1;
int week = allDay % 7;
if (week==0){
week=7;
}
int day = 0;
switch(month){
case 1:case 3:case 5:case 7:case 8:case 10:case 12:
day = 31;
break;
case 4:case 6:case 9:case 11:
day =30;
break;
case 2:
if(year%4==0 && year%100!=0 || year%400==0){
day = 29;
}else{
day = 28;
}
break;
}
System.out.println(year + "年" + month + "月");
System.out.println("一\t二\t三\t四\t五\t六\t日");
int count = 0;
for(int i = 1;i<week;i++){
System.out.print("\t");
count++;
}
for(int i = 1;i<=day;i++){
System.out.print(i + "\t");
count++;
if(count % 7 == 0){
System.out.println();
}
}
}
}