通过Java的基本语法来实现我们的万年历
请看代码
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();}}}
}
接下来我们看效果: