1. 程式人生 > >用java列印日曆

用java列印日曆


題目:編寫一個某年第一天是星期幾的查詢器:程式輸出:XXXX年一月一日是 星期X
提示:1900年一月一日是星期一
思路解析:
1,先算出今年距離1900年之間共有多少天,在計算總天數的時候,分兩種情況考慮,第一種是對年的考慮,分閏年和平年,第二種是對月份的判斷,也要注意分閏月和非閏月哦!!
2,在算出了距離1900年的總天數後,根據(totalDays+1%7這個公式算星期。

3,有兩個小細節需要注意的是:@以星期幾為次數來迴圈列印空格,如下面這張圖:

Week=1;即通過for(int i=0;i<week;i++){}來判斷空格,如圖中星期日到星期一的空格!

@月天數的換行,每七天換一行。如下圖:

程式碼實現:

packagecom.rshz.lesson4;

importjava.util.Scanner;

publicclass Calendar {

/**

* 編寫一個某年第一天是星期幾的查詢器:

* 程式輸出:XXXX年一月一日是星期X

提示:1900年一月一日是星期一

* @param args

*/

publicstaticvoid main(String[] args) {

// TODO Auto-generated method stub

Scanner in = newScanner(System.in);//呼叫Scanner

物件

//輸入年和月

System.out.println("請輸入年和月");

intyear=in.nextInt();

intmonth=in.nextInt();

//定義總天數和月以及星期

longtotalDays=0;

longweek=0;

longmonthDay=0;

//對年的處理

for(inti=1900;i<year&&i>=1900;i++)

{

if(i%4==0&&i%100!=0||i%400==0)

{

totalDays=totalDays+366;//閏年

}

else

{

totalDays=totalDays+365;

//平年

}

}

//對月的處理

for(inti=1;i<month;i++)

{

if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)

{

totalDays=totalDays+31;

}

elseif(i==4||i==6||i==9||i==11)

{

totalDays=totalDays+30;

}

else

{

if(year%4==0&&year%100!=0||year%400==0)

{

totalDays=totalDays+29;//閏月

}

else

{

totalDays=totalDays+28;//平月

}

}

}

System.out.println("總天數:"+totalDays);

week=(totalDays+1)%7;//根據總天數算星期幾

System.out.println("當月第一天是星期:"+week);

System.out.println("年份"+year+"月份"+month);

System.out.println("*********************************************************************");

System.out.println(""+"\t"+""+"\t"+""+"\t"+""+"\t"+""+"\t"+""+"\t"+"");

//列印星期的空格

for(inti=0;i<week;i++)//根據星期來列印空格

{

System.out.print("\t");

}

if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)

{

monthDay=31;

}

elseif(month==4||month==6||month==9||month==11)

{

monthDay=30;

}

else

{

if(year%4==0&&year%100!=0||year%400==0)

{

monthDay=29;

}

else

{

monthDay=28;

}

}

for(inti=1;i<=monthDay;i++)//遍歷月的天數

{

System.out.print(i+"\t");

if((i+week)%7==0)//判斷星期

{

System.out.println();

}

}

System.out.println();

System.out.println("*************************************************");

}

}