关于java:Java输出日历

8次阅读

共计 1117 个字符,预计需要花费 3 分钟才能阅读完成。

应用键盘输入日期,输入当月日历

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        
正文完
 0