可视化日历示例展示:
public class VisualCalendar{ public static void main(String [] args){ //1. 按照提示从键盘输入日期字符串: System.out.println("请输入日期(格式:2017-12-19):"); Scanner scanner = new Scanner(System.in); String temp = scanner.nextLine(); //2. 将字符串转换成日期: DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); try{ Date date = fromat.parse(temp); //3. 将日期转换成日历: Calendar calendar = new GregorianCalendar(); calendar.setTime(date); //4. 把日期中的Date取出来: int day = calendar.get(Calendar.DATE); //5. 把日历变成了当月的1日: calendar.set(Calendar.DATE, 1); //6. 打印日历头部信息: system.out.println("日 一 二 三 四 五 六"); //7. 打印1日之前的空格(关键知道1日是星期几): for(int i=1; i<calendar.get(Calendar.DAY_OF_WEEK); i++){ System.out.print(' '); } //8. 打印日历 int maxDate = calendar.getActualMaximum(Calendar.DATE);//获取当月的最大的天数。 for(int i=1; i<=maxDate; i++){ //8.1 如果是当天,打印* if(i==day){ System.out.print("*"); } //8.2 打印该天 System.out.print(i+" "); //8.3 如果是周六,换行 int w = calendar.get(Calendar.DAY_OF_WEEK); if(w == Calendar.SATURDAY){ System.out.print(' '); } //8.4 把日历改为下一天 calendar.add(Calendar.DATE,1); } }catch(ParseException e){ e.printStackTrace(); } } }