java 使用Date类和DateFormat抽象类和Calendar抽象类实现日历
版本一:
输入时间字符串形成日历
思路:将字符串按照指定字符串格式形成时间类,再将时间类转换成日期类
String s="2019-7-7"; //创建字符串 DateFormat it =new SimpleDateFormat("yyyy-MM-dd"); //构造方法指定日期格式 Date d=it.parse(s); //通过SDF实例方法parse构造时间类 Calendar c= new GregorianCalendar(); //构造日期类对象 c.setTime(d); //通过方法将时间类转换成日期类 c.set(Calendar.DAY_OF_MONTH,1); //将日期号置为1,并且该月的所元素都是1 System.out.println("日\t一\t二\t三\t四\t五\t六"); #System.out.println(c.get(Calendar.DAY_OF_WEEK)) //打印,输入的日期号是星期几 //1是星期天,2是星期6 for(int i=0;i<c.get(Calendar.DAY_OF_WEEK)-1;i++) //因为号已重置为1,故为实现第一 天在星期几之前打印的制表符个数 { System.out.print("\t"); } int max=c.getActualMaximum(Calendar.DATE); //得到本月天数 for(int i=1;i<=max;i++) //c.getActualMaximum(Calendar.DATE) 得到输入字符串日期的月份的天数 //不在循环条件内放入方法求本月天数是因为,如果是6月30天,循环内最后一个语句将会+1,变成了7月,循环条件变成了<=31,会多打印一次 { System.out.print(c.get(Calendar.DAY_OF_MONTH)+"\t"); if(c.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY) //如果号等于星期六,即6,换行 { System.out.println(); } c.add(Calendar.DAY_OF_MONTH, 1); //使用Calendar加法方法是号每次循环+1 }
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。