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 32 33
| 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(); } } }
|