博客 / 詳情

返回

Java輸出日曆

使用鍵盤輸入日期,輸出當月日曆

public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入日期,比如:2021-06-18");
        String strDate = sc.next();//接收用户輸入的日期
        //System.out.println("日期是:" + strDate);//輸出日期
        System.out.println("日\t一\t二\t三\t四\t五\t六");
        java.sql.Date date = java.sql.Date.valueOf(strDate);//將字符串日期strDate轉換成java.sql.Date
        Calendar calendar = Calendar.getInstance();//聲明日曆類,方式一
        //Calendar calendar = new GregorianCalendar();//聲明日曆類,方式二
        calendar.setTime(date);//設置日期
        //System.out.println(calendar);
        int maxDate = calendar.getActualMaximum(Calendar.DATE);//獲取當月最大天數,比如6月有30天,7月有31天
        int day = calendar.get(Calendar.DATE);//獲取當前日
        calendar.set(Calendar.DATE, 1);//設置當前日為1號
        int num = calendar.get(Calendar.DAY_OF_WEEK);//獲取1號是一週中的第幾天,比如週日是一週中的第1天
        int count = num - 1;//計數器,每7天輸出換行,包括輸出的空區域num-1
        for (int i = 1; i < num; i++) {
            //輸入num個空區域,比如1號是第一週的中的第3天,則1號是週二,前面應該輸出2個空區域
            System.out.print("\t");
        }
        for (int i = 1; i <= maxDate; i++) {
            if (day == i) {//如果是當前日,則用*標註
                System.out.print(i + "*\t");
            } else {
                System.out.print(i + "\t");
            }
            count++;
            if (count % 7 == 0) {
                //count計數器,每7個換行
                System.out.println();
            }
        }
    }

輸出結果

請輸入日期,比如:2021-06-18
2021-07-18
日    一    二    三    四    五    六
                1    2    3    
4    5    6    7    8    9    10    
11    12    13    14    15    16    17    
18*    19    20    21    22    23    24    
25    26    27    28    29    30    31        
user avatar markerhub 頭像 dm2box 頭像 huzilachadedanche 頭像 lingfeng23 頭像 redorblack 頭像 biubiubiu_5ea3ee0e6b5fd 頭像 knifeblade 頭像 buxiyan 頭像
8 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.