温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java开发基础日期类的示例分析

发布时间:2021-08-20 09:36:02 来源:亿速云 阅读:118 作者:小新 栏目:编程语言

这篇文章主要为大家展示了“Java开发基础日期类的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java开发基础日期类的示例分析”这篇文章吧。

一、日期工具类

package com.lyz.date; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import com.chwl.medical.utils.common.CollectionUtils; import com.chwl.medical.utils.common.ObjectUtils; /**  * 日期工具类,获取指定月份的星期与日期的对应关系  * @author liuyazhuang  *  */ public class DateUtils {	public static final String DATE_FORMAT = "yyyy-MM-dd";	public enum Type{	Year, Month, Date	}	/**	 * 获取两个时间之间的年份	 * @param startDate	 * @param endDate	 * @return	 */	public static int getYears(Date startDate, Date endDate, Type type){	int count = 0;	 Calendar calBegin = Calendar.getInstance(); //获取日历实例 	 Calendar calEnd = Calendar.getInstance(); 	 calBegin.setTime(startDate);	 calEnd.setTime(endDate);	 if(Type.Year == type){	 count = calEnd.get(Calendar.YEAR) - calBegin.get(Calendar.YEAR); 	 }else if(Type.Month == type){	 count = calEnd.get(Calendar.MONTH) - calBegin.get(Calendar.MONTH); 	 }else{	 count = calEnd.get(Calendar.DATE) - calBegin.get(Calendar.DATE); 	 }	 return count;	}	/**	 * 获取指定月份的所有日期和星期集合	 * @param offset:起止月份, 0:当前月, 1:下一个月; 2下下月; 以此类推... -1:上一个月; -2:上上一个月 ; 以此类推....	 * @param length:终止月份, 0:当前月, 1:下一个月; 2下下月; 以此类推... -1:上一个月; -2:上上一个月 ; 以此类推....	 * @return:日期和星期集合:星期为key 日期为value	 */	public static Map<String, List<String>> getKeyFromMapByValue(int offset, int length){	return getKeyFromMapByValue(getDateKeyWeekValue(offset, length));	}	/**	 * 将以date为key, week为value的map转化为以week为key, date为value的map	 * @param dateWeek	 * @return	 */	public static Map<String, List<String>> getKeyFromMapByValue(Map<String, String> dateWeek){	Map<String, List<String>> weekDate = new HashMap<String, List<String>>();	if(!CollectionUtils.isEmpty(dateWeek)){	for(Map.Entry<String, String> entry : dateWeek.entrySet()){	//获取日期集合	List<String> list = weekDate.get(entry.getValue());	if(ObjectUtils.isEmpty(list)){	list = new ArrayList<String>();	}	list.add(entry.getKey());	weekDate.put(entry.getValue(), list);	}	}	return weekDate;	}	/**	 * 获取指定月份的所有日期和星期集合	 * @param offset:起止月份, 0:当前月, 1:下一个月; 2下下月; 以此类推... -1:上一个月; -2:上上一个月 ; 以此类推....	 * @param length:终止月份, 0:当前月, 1:下一个月; 2下下月; 以此类推... -1:上一个月; -2:上上一个月 ; 以此类推....	 * @return:日期和星期集合:日期为key 星期为value	 */	public static Map<String, String> getDateKeyWeekValue(int offset, int length){	Map<String, String> map = new HashMap<String, String>();	for(int i = offset; i <= length; i++){	List<Date> list = getAllTheDateOftheMonth(new Date(),i);	for(Date date: list){	String weekDay = getDateOfWeek(date);	map.put(parseDateToString(date, DATE_FORMAT), weekDay);	}	}	return map;	}	/**	 * 获取当前日期所在月份的所有日期,指定月份的所有日期	 * @param date:当前日期	 * @param n:1下一月;2:下下月..以此类推; -1:上月,-2:上上月...以此类推	 * @return:返回指定月份的所有日期	 */	public static List<Date> getAllTheDateOftheMonth(Date date, int n) {	List<Date> list = new ArrayList<Date>();	Calendar cal = Calendar.getInstance();	cal.setTime(date);	cal.set(Calendar.DATE, 1);	cal.add(Calendar.MONTH, n);	int month = cal.get(Calendar.MONTH);	while(cal.get(Calendar.MONTH) == month){	list.add(cal.getTime());	cal.add(Calendar.DATE, 1);	}	return list;	}	/**	 * 根据日期获得星期	 * @param date	 * @return	 */	public static String getDateOfWeek(Date date) {	//String[] weekDaysName = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };	String[] weekDaysCode = { "0", "1", "2", "3", "4", "5", "6" };	Calendar calendar = Calendar.getInstance();	calendar.setTime(date);	int intWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1;	if(intWeek < 0) intWeek = 0;	return weekDaysCode[intWeek];	}	public static String parseDateToString(Date date, String formatString) {	return getSimpleDateFormat(formatString).format(date);	}	public static SimpleDateFormat getSimpleDateFormat(String formatString) {	return new SimpleDateFormat(formatString);	} }

二、测试类

package com.lyz.date;  import net.sf.json.JSONObject;  /**   * 测试工具类   * @author liuyazhuang   *   */  public class TestDate {    public static void main(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开发基础日期类的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI