public class CalDate{ 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(); //1.计算1900.1.1到输入年的天数 int
dayOfYear= 0; for (int i = 1900; i < year; i++){ if (i % 4 == 0 && i % 100 != 0
|| i % 400 == 0){ dayOfYear += 366; }else { dayOfYear += 365; } }
//2.计算1月到输入月的天数 int dayOfMonth = 0; for (int i = 1; i < month; i++){ switch (i){
case 1:case 3:case 5:case 7:case 8:case 10:case 12: dayOfMonth += 31; break;
case 4:case 6:case 9:case 11: dayOfMonth += 30; break; case 2: if((year%4==0)&&(
year%100!=0)||(year%400==0)){ dayOfMonth += 29; } else{ dayOfMonth += 28; }
break; } } //3.获取输入月的天数 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; } //4.计算星期 int allDay = dayOfYear + dayOfMonth + 1; int
week= allDay % 7; int count = 0;//计数器,记录日期的空格 System.out.println(
"星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六"); //4.打印空格 for(int i=1;i<= week;i++){ System
.out.print("\t\t"); count++; } //6. 打印日历 for(int i=1;i<=day;i++){ System.out.
print(i+"\t\t"); count++; //若记录数是七的倍数，换行输出 if(count % 7 == 0){ System.out.
println(); } } } }

GitHub

Gitee