* @param args
*/
公共靜態void main(String[] args) {
系統。out . println(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ");
掃描儀輸入=新掃描儀(system . in);
system . out . print(" \ n請選擇年份:");
int year = input . nextint();
system . out . print(" \ n請選擇月份:");
int month = input . nextint();
system . out . println();int days = 0;//存儲當月的日期。
布爾isRn
/*判斷是否是閏年*/
if(年份% 4 = = 0 & amp& amp!(Year % 100 = = 0)| | Year % 400 = = 0){//判斷是否是閏年。
isRn = true//閏年
}否則{
isRn = false//平均年份
}/*計算輸入年份之前的天數*/
int total days = 0;
for(int I = 1900;我& lt年份;i++) {
/*判斷閏年或平年並累計天數*/
if(I % 4 = = 0 & amp;& amp!(i% 100 == 0) || i% 400 == 0) {//判斷是否是閏年。
總天數=總天數+366;//閏年366天
}否則{
總天數=總天數+365;//正常年份365天
}
}/*計算輸入月份之前的天數*/
int before days = 0;
for(int I = 1;我& lt=月;i++) {
開關(i) {
案例1:
案例三:
案例5:
案例7:
案例8:
案例10:
案例12:
天數= 31;
打破;
案例二:
if (isRn) {
天數= 29;
}否則{
天數= 28;
}
打破;
默認值:
天數= 30天;
打破;
}
如果(我& lt月){
之前天數=之前天數+天數;
}
}
總天數=總天數+之前天數;//1900 65438+10月1/*計算星期幾*/
int firstDayOfMonth//存儲當月第壹天的星期幾:周日為0,周壹至周六為1~6。
int temp = 1 +總天數% 7;//從0900年的65438+65438+10月的1計算。
If (temp == 7) {//查找該月的第壹天。
first day of month = 0;//星期天
}否則{
firstDayOfMonth = temp
}/*輸出日歷*/
System.out.println ("Sunday \t星期壹\t星期二\t星期三\t星期四\t星期五\t星期六");
for(int null no = 0;nullNo & ltfirstDayOfMonthnullNo++) {
system . out . print(" \ t ");//輸出空格
}
for(int I = 1;我& lt=天;i++) {
system . out . print(I+" \ t ");
If((總天數+I-1)% 7 = = 5){//如果當天是星期六,輸出將換行。
system . out . println();
}
}
}
}