VisualCalendar-可视化日历的创建

public class VisualCalendar {
    public static void main(String[]args){
        System.out.println("请输入日期(按照格式2001-01-03):");
        Scanner s=new Scanner(System.in);
        String a=s.nextLine();//输入一个时间,以字符串的格式;
        DateFormat b=new SimpleDateFormat("yyyy-MM-dd");//两者格式要相等;
        try {
            Date c=b.parse(a);//核心代码: 把字符串转为时间!!!!
            Calendar d=new GregorianCalendar();
            d.setTime(c);//这三行代码是为了把字符串转换为calendar类目的是变成计算机能处理的日期
            int today=d.get(Calendar.DATE);
            d.set(Calendar.DATE, 0);//初始化,让输入的数是1号;
            //System.out.println(d.get(Calendar.DAY_OF_WEEK));输入的日期1号是星期几
            //System.out.println(d.getActualMaximum(Calendar.DATE));日期所在的月份的最大天数;
            System.out.println("日	一	二	三	四	五	六");
            for(int i=0;i<d.get(Calendar.DAY_OF_WEEK);i++){//1号在星期几,前面的都打印空字符;
                System.out.print("	");
            }
            for(int i=1;i<=d.getActualMaximum(Calendar.DATE);i++){//打印本月的天数
                if(i==today){
                    System.out.print("*");//把今天用*表示出来
                }
                System.out.print(i+"	");
                
                int w=d.get(Calendar.DAY_OF_WEEK);//获得星期几;
                if(w==6)//如果是星期6则换行;
                    {
                    System.out.println();
                }
                d.add(Calendar.DATE,1);//循环一次+一天;
            }
        } catch (ParseException e) {
            // TODO Auto-generated catch block自动填写捕获异常;
            e.printStackTrace();
        }
    }
}
原文地址:https://www.cnblogs.com/myErebos/p/8586351.html