java簡單的萬年歷

cyjjkz1 8年前發布 | 698 次閱讀 Java

簡單的萬年歷    

import java.util.*;

public class Blank{
    public static void main(String[] args){
        Scanner input=new Scanner(System.in);
        System.out.println("選擇年份(注必須大于1990年):");
        int year=input.nextInt();
        System.out.println("選擇該年月份:");
        int month=input.nextInt();
        //先判斷year是否是閏年
        boolean Renyear;//定義布爾類型true or false
        if(year%4==0&&year%100!=0||year%400==0){
            System.out.println(year+"是閏年");
            Renyear=true;
        }
        else{
            System.out.println(year+"是平年");
            Renyear=false;
        }
        //記錄當月的天數
        int day=0;
        switch (month){
        case 1:day=31;break;
        //case 2:day=28 or 29;break;
        case 3:day=31;break;
        case 4:day=30;break;
        case 5:day=31;break;
        case 6:day=30;break;
        case 7:day=31;break;
        case 8:day=31;break;
        case 9:day=30;break;
        case 10:day=31;break;
        case 11:day=30;break;
        case 12:day=31;break;
        default:if(Renyear){
            day=29;
        }
        else{
            day=28;
        }
        break;
        }
        System.out.print(year+"年"+month+"月"+"有"+day+"天"+"\t");
        System.out.println(month+"月份的萬年歷如下:");
        //統計從1990年到指定日期的天數,1990年1月1日為星期一。
        int sum=0;
        //從1990年開始循環,循環次數是:指定年份—1990;
        for(int i=1990;i<year;i++){
            //判斷是否是閏年
            if(i%4==0&&i%100!=0||i%400==0){
                sum=sum+366;
            }
            else{
                sum=sum+365;
            }
        }
        //統計月份的天數
        for(int i=1;i<month;i++){
            //大月
            if(i==1||i==3||i==5||i==7||i==8||i==10||i==12){
                sum=sum+31;
            }
            //小月
            else if(i==4||i==6||i==9||i==11){
                sum=sum+30;
            }
            //二月
            else {
                if(Renyear)
                sum=sum+29;
                else
                sum=sum+28;
            }   
        }

        //該公式起始時間是1990年1月1日,且1月1日是星期一。
        int blank=sum%7+1;//blank開始輸出的空格數 +1是從星期天開始;
        System.out.println("星期天\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");

        int temp=1;
        for(int i=0;i<blank;i++){
            System.out.print("\t");
            temp++;
        }
        if(temp>7){
            System.out.println("");
            temp=1;
        }
        for(int i=1;i<=day;i++){
            if(temp%7==0){
                System.out.print(i+"\n");//控制換行
                temp=1;
            }
            else{
                System.out.print(i+"\t");
                temp++;
            }
        }

    }
}
 本文由用戶 cyjjkz1 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!