JAVA實現列印日曆
阿新 • • 發佈:2018-12-25
public class Calendar { public static void main(String[] args) { Scanner in=new Scanner(System.in); System.out.print("請輸入要查詢的年份"); int year=in.nextInt(); //接收年份儲存在year中 System.out.print("請輸入要查詢的月份"); int month=in.nextInt(); //接收月份儲存在month中 int sum=0,day=0; //計算到1900年的總天數 ---總天數等於從1900年起到year年的所有天數加上到month的天數 for(int i=1900;i<year;i++){ //for迴圈實現天數的累加 if(i%4==0&&i%100!=0||i%400==0){ sum+=366; }else{ sum+=365; } } //計算到當前月的總天數並計算每個月的天數 for(int j=1;j<month;j++){ //switch語句控制天數,for迴圈實現天數的累加 switch(j){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: sum+=31;day=31; break; case 4: case 6: case 9: case 11: sum+=30;day=30; break; case 2: if(year%4==0&&year%100!=0||year%400==0) { sum+=29;day=29; }else { sum+=28;day=28; }break; } } //填充日期 int weekday=sum%7+1; //總天數取餘數,日曆從星期日開始列印,再+1 代表上個月的最後一週佔這個月的幾天 System.out.println("日\t一\t二\t三\t四\t五\t六"); for(int i=1;i<=weekday;i++){ System.out.print("\t"); //跳過上個月多出的日期 } //輸出日曆 for(int i=1;i<=day;i++){ if(sum%7+1==6){ //控制換行 System.out.print(i+"\n"); }else{ System.out.print(i+"\t"); //for迴圈列印每天對應的日曆 } sum++;//控制每次換行 } } }