Java开发基础日期类代码详解
由于工作关系,很久没更新博客了,今天就给大家带来一篇Java实现获取指定月份的星期与日期对应关系的文章,好了,不多说,我们直接上代码:
一、日期工具类
packagecom.lyz.date; importjava.text.SimpleDateFormat; importjava.util.ArrayList; importjava.util.Calendar; importjava.util.Date; importjava.util.HashMap; importjava.util.List; importjava.util.Map; importcom.chwl.medical.utils.common.CollectionUtils; importcom.chwl.medical.utils.common.ObjectUtils; /** *日期工具类,获取指定月份的星期与日期的对应关系 *@authorliuyazhuang * */ publicclassDateUtils{ publicstaticfinalStringDATE_FORMAT="yyyy-MM-dd"; publicenumType{ Year,Month,Date } /** *获取两个时间之间的年份 *@paramstartDate *@paramendDate *@return */ publicstaticintgetYears(DatestartDate,DateendDate,Typetype){ intcount=0; CalendarcalBegin=Calendar.getInstance();//获取日历实例 CalendarcalEnd=Calendar.getInstance(); calBegin.setTime(startDate); calEnd.setTime(endDate); if(Type.Year==type){ count=calEnd.get(Calendar.YEAR)-calBegin.get(Calendar.YEAR); }elseif(Type.Month==type){ count=calEnd.get(Calendar.MONTH)-calBegin.get(Calendar.MONTH); }else{ count=calEnd.get(Calendar.DATE)-calBegin.get(Calendar.DATE); } returncount; } /** *获取指定月份的所有日期和星期集合 *@paramoffset:起止月份,0:当前月,1:下一个月;2下下月;以此类推...-1:上一个月;-2:上上一个月;以此类推.... *@paramlength:终止月份,0:当前月,1:下一个月;2下下月;以此类推...-1:上一个月;-2:上上一个月;以此类推.... *@return:日期和星期集合:星期为key日期为value */ publicstaticMap>getKeyFromMapByValue(intoffset,intlength){ returngetKeyFromMapByValue(getDateKeyWeekValue(offset,length)); } /** *将以date为key,week为value的map转化为以week为key,date为value的map *@paramdateWeek *@return */ publicstaticMap >getKeyFromMapByValue(Map dateWeek){ Map >weekDate=newHashMap >(); if(!CollectionUtils.isEmpty(dateWeek)){ for(Map.Entry entry:dateWeek.entrySet()){ //获取日期集合 List list=weekDate.get(entry.getValue()); if(ObjectUtils.isEmpty(list)){ list=newArrayList (); } list.add(entry.getKey()); weekDate.put(entry.getValue(),list); } } returnweekDate; } /** *获取指定月份的所有日期和星期集合 *@paramoffset:起止月份,0:当前月,1:下一个月;2下下月;以此类推...-1:上一个月;-2:上上一个月;以此类推.... *@paramlength:终止月份,0:当前月,1:下一个月;2下下月;以此类推...-1:上一个月;-2:上上一个月;以此类推.... *@return:日期和星期集合:日期为key星期为value */ publicstaticMap getDateKeyWeekValue(intoffset,intlength){ Map map=newHashMap (); for(inti=offset;i<=length;i++){ List list=getAllTheDateOftheMonth(newDate(),i); for(Datedate:list){ StringweekDay=getDateOfWeek(date); map.put(parseDateToString(date,DATE_FORMAT),weekDay); } } returnmap; } /** *获取当前日期所在月份的所有日期,指定月份的所有日期 *@paramdate:当前日期 *@paramn:1下一月;2:下下月..以此类推;-1:上月,-2:上上月...以此类推 *@return:返回指定月份的所有日期 */ publicstaticList getAllTheDateOftheMonth(Datedate,intn){ List list=newArrayList (); Calendarcal=Calendar.getInstance(); cal.setTime(date); cal.set(Calendar.DATE,1); cal.add(Calendar.MONTH,n); intmonth=cal.get(Calendar.MONTH); while(cal.get(Calendar.MONTH)==month){ list.add(cal.getTime()); cal.add(Calendar.DATE,1); } returnlist; } /** *根据日期获得星期 *@paramdate *@return */ publicstaticStringgetDateOfWeek(Datedate){ //String[]weekDaysName={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"}; String[]weekDaysCode={"0","1","2","3","4","5","6"}; Calendarcalendar=Calendar.getInstance(); calendar.setTime(date); intintWeek=calendar.get(Calendar.DAY_OF_WEEK)-1; if(intWeek<0)intWeek=0; returnweekDaysCode[intWeek]; } publicstaticStringparseDateToString(Datedate,StringformatString){ returngetSimpleDateFormat(formatString).format(date); } publicstaticSimpleDateFormatgetSimpleDateFormat(StringformatString){ returnnewSimpleDateFormat(formatString); } }
二、测试类
packagecom.lyz.date; importnet.sf.json.JSONObject; /** *测试工具类 *@authorliuyazhuang * */ publicclassTestDate{ publicstaticvoidmain(String[]args){ System.out.println(JSONObject.fromObject(DateUtils.getDateKeyWeekValue(-1,1))); System.out.println(JSONObject.fromObject(DateUtils.getKeyFromMapByValue(-1,1))); } }
三、测试结果
{ "2017-02-28":"2", "2017-04-19":"3", "2017-04-17":"1", "2017-02-25":"6", "2017-04-18":"2", "2017-02-24":"5", "2017-04-15":"6", "2017-02-27":"1", "2017-04-16":"0", "2017-02-26":"0", "2017-04-13":"4", "2017-02-21":"2", "2017-04-14":"5", "2017-02-20":"1", "2017-04-11":"2", "2017-02-23":"4", "2017-04-12":"3", "2017-02-22":"3", "2017-04-21":"5", "2017-04-20":"4", "2017-04-08":"6", "2017-04-09":"0", "2017-04-04":"2", "2017-04-05":"3", "2017-04-06":"4", "2017-04-07":"5", "2017-04-01":"6", "2017-04-02":"0", "2017-04-03":"1", "2017-04-10":"1", "2017-02-07":"2", "2017-02-06":"1", "2017-02-09":"4", "2017-02-08":"3", "2017-03-29":"3", "2017-03-25":"6", "2017-03-26":"0", "2017-03-27":"1", "2017-02-01":"3", "2017-03-28":"2", "2017-03-21":"2", "2017-02-03":"5", "2017-03-22":"3", "2017-02-02":"4", "2017-03-23":"4", "2017-02-05":"0", "2017-03-24":"5", "2017-02-04":"6", "2017-03-31":"5", "2017-03-30":"4", "2017-04-23":"0", "2017-04-22":"6", "2017-02-19":"0", "2017-04-25":"2", "2017-02-18":"6", "2017-04-24":"1", "2017-02-17":"5", "2017-04-27":"4", "2017-04-26":"3", "2017-04-29":"6", "2017-03-18":"6", "2017-04-28":"5", "2017-03-19":"0", "2017-02-12":"0", "2017-03-16":"4", "2017-02-11":"6", "2017-03-17":"5", "2017-02-10":"5", "2017-03-14":"2", "2017-03-15":"3", "2017-02-16":"4", "2017-03-12":"0", "2017-02-15":"3", "2017-03-13":"1", "2017-02-14":"2", "2017-03-10":"5", "2017-02-13":"1", "2017-03-11":"6", "2017-03-20":"1", "2017-03-09":"4", "2017-03-08":"3", "2017-03-07":"2", "2017-03-06":"1", "2017-03-05":"0", "2017-03-04":"6", "2017-03-03":"5", "2017-03-02":"4", "2017-04-30":"0", "2017-03-01":"3" }
{ "3":[ "2017-04-19", "2017-04-12", "2017-02-22", "2017-04-05", "2017-02-08", "2017-03-29", "2017-02-01", "2017-03-22", "2017-04-26", "2017-03-15", "2017-02-15", "2017-03-08", "2017-03-01" ], "2":[ "2017-02-28", "2017-04-18", "2017-02-21", "2017-04-11", "2017-04-04", "2017-02-07", "2017-03-28", "2017-03-21", "2017-04-25", "2017-03-14", "2017-02-14", "2017-03-07" ], "1":[ "2017-04-17", "2017-02-27", "2017-02-20", "2017-04-03", "2017-04-10", "2017-02-06", "2017-03-27", "2017-04-24", "2017-03-13", "2017-02-13", "2017-03-20", "2017-03-06" ], "0":[ "2017-04-16", "2017-02-26", "2017-04-09", "2017-04-02", "2017-03-26", "2017-02-05", "2017-04-23", "2017-02-19", "2017-03-19", "2017-02-12", "2017-03-12", "2017-03-05", "2017-04-30" ], "6":[ "2017-02-25", "2017-04-15", "2017-04-08", "2017-04-01", "2017-03-25", "2017-02-04", "2017-04-22", "2017-02-18", "2017-04-29", "2017-03-18", "2017-02-11", "2017-03-11", "2017-03-04" ], "5":[ "2017-02-24", "2017-04-14", "2017-04-21", "2017-04-07", "2017-02-03", "2017-03-24", "2017-03-31", "2017-02-17", "2017-04-28", "2017-03-17", "2017-02-10", "2017-03-10", "2017-03-03" ], "4":[ "2017-04-13", "2017-02-23", "2017-04-20", "2017-04-06", "2017-02-09", "2017-02-02", "2017-03-23", "2017-03-30", "2017-04-27", "2017-03-16", "2017-02-16", "2017-03-09", "2017-03-02" ] }
总结
本文通过代码示例向大家展示了日期工具类的几种用法,希望对大家学习Java有所帮助。
感兴趣的朋友可以参阅:Java语言Lang包下常用的工具类介绍、JavaAtomicInteger类的使用方法详解等以及本站其他相关专题,如有不足之处,欢迎留言指出,小编会及时回复大家并更正。感谢朋友们对毛票票网站的支持!