[Java每日一練] Calendar 鍵盤輸入一個年份和月份,控制檯輸出當月的日曆

題目:
  使用Calendar完成一個萬年曆,鍵盤輸入一個年份和月份,控制檯輸出當月的日曆。

編碼思路:
  打印當年當月的日曆,需要確定兩點:

  • 這個月的天數;
  • 第一天是星期幾。第一天之前打印空白,每行爲7個數字,7的倍數換行。

代碼如下:

public class Demo5 {
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        System.out.println("輸入year:");
        int year = input.nextInt();
        System.out.println("輸入month:");
        int month = input.nextInt();

        //得到一個Calendar對象
        Calendar c = Calendar.getInstance();
        //將輸入的年和月設置到Calendar對象,月減一,日爲每月第一天,比如2019-12-1
        c.set(year, month-1, 1);

        //得到每月實際最大天數
        int dayOfMonth = c.getActualMaximum(Calendar.DAY_OF_MONTH);
        //得到每月第一天是星期幾,1爲星期日,2爲星期一
        int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);

        System.out.println("日\t一\t二\t三\t四\t五\t六");
        //將第一天前的星期打印製表符
        for (int j = 1; j < dayOfWeek; j++) {
            System.out.print("\t");
        }
        //打印每一天
        for (int k = 0; k < dayOfMonth; k++) {
            System.out.print(k+1+"\t");
            //7的倍數就換行
            if((dayOfWeek+k)%7==0){
                System.out.println();
            }
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章