Calendar万年历,制作指定年份的日历
1、Java中Calendar类是抽象基类,在创建对象的时候不能直接用new进行调用创建
//使用子类GregorianCalendar
Calendar cal = new GregorianCalendar();
//第二种
Calendar cal = Calendar.getInstance();
2、Calendar类中可以使用get方法来获得对应的年份、月份、日期等信息,但是有比较特殊的是获得月份以及获得星期数。
//new一个对象,自动获取当前系统时间:当前为2020年4月4日,星期六
Calendar calendar = new GregorianCalendar();
//calendar类中的get方法:1月返回0,2月返回1,…,12月返回11
int month = calendar.get(calendar.MONTH);
System.out.println(month);//当前为4月,因此返回3
//calendar类中的get方法,DAY_OF_WEEK:星期日返回1,星期一返回2,…,星期六返回7
int weekDays = calendar.get(calendar.DAY_OF_WEEK);
System.out.println(weekDays);//当前为星期六因此返回7
因此在输出月份以及星期数时,要进行相对应的加减1运算
3、打印日历时,一般在星期六时需要换行(假设每一行的开头为星期天时),判断条件为利用get方法返回的DAY_OF_WEEK是否等于7。如果等于7,则换行,因此每打印一个日期数后日期数应当加1。
//判断是否换行
if(calendar.get(Calendar.DAY_OF_WEEK)==7)
System.out.println();
利用add方法可以实现使得日期数加一,需要注意的时,如果达到临界值时仍然加1,则会使得日期数为1,此时月份也加1。如此时MONTH=0 且DAY_OF_MONTH=31,如果仍然利用add方法进行加一,则MONTH=1且DAY_OF_MONTH=1。
//new一个对象,使得日期为2020-01-31
Calendar calendar = new GregorianCalendar(2020, 0,