package com.yh.dzy.util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * Created by 菜园子 on 2018/10/15. */ public class DateCalculateUtil { public static final int YEAR_RETURN = 0; public static final int MONTH_RETURN = 1; public static final int DAY_RETURN = 2; public static final int HOUR_RETURN= 3; public static final int MINUTE_RETURN = 4; public static final int SECOND_RETURN = 5; public static final String YYYY = "yyyy"; public static final String YYYYMM = "yyyy-MM"; public static final String YYYYMMDD = "yyyy-MM-dd"; public static final String YYYYMMDDHH= "yyyy-MM-dd HH"; public static final String YYYYMMDDHHMM = "yyyy-MM-dd HH:mm"; public static final String YYYYMMDDHHMMSS = "yyyy-MM-dd HH:mm:ss"; public static long getBetween(String beginTime, String endTime, String formatPattern, int returnPattern) throws ParseException { SimpleDateFormat simpleDateFormat = new SimpleDateFormat(formatPattern); Date beginDate = simpleDateFormat.parse(beginTime); Date endDate = simpleDateFormat.parse(endTime); Calendar beginCalendar = Calendar.getInstance(); Calendar endCalendar = Calendar.getInstance(); beginCalendar.setTime(beginDate); endCalendar.setTime(endDate); switch (returnPattern) { case YEAR_RETURN: return getByField(beginCalendar, endCalendar, Calendar.YEAR); case MONTH_RETURN: return getByField(beginCalendar, endCalendar, Calendar.YEAR)*12 + getByField(beginCalendar, endCalendar, Calendar.MONTH); case DAY_RETURN: return getTime(beginDate, endDate)/(24*60*60*1000); case HOUR_RETURN: return getTime(beginDate, endDate)/(60*60*1000); case MINUTE_RETURN: return getTime(beginDate, endDate)/(60*1000); case SECOND_RETURN: return getTime(beginDate, endDate)/1000; default: return 0; } } private static long getByField(Calendar beginCalendar, Calendar endCalendar, int calendarField){ return endCalendar.get(calendarField) - beginCalendar.get(calendarField); } private static long getTime(Date beginDate, Date endDate){ return endDate.getTime() - beginDate.getTime(); } /** * 校验日期是否超过所给条件的期限 * @param beginDate * @param endDate * @param optye 年月日时分秒 * @param num * @return */ public static boolean validateIsExpire(String beginDate,String endDate,int optye,long num){ boolean b = false; try { switch (optye){ case YEAR_RETURN: b = getBetween(beginDate,endDate,YYYYMMDDHHMMSS,YEAR_RETURN) > num ? false : true; break; case MONTH_RETURN: b = getBetween(beginDate,endDate,YYYYMMDDHHMMSS,MONTH_RETURN) > num ? false : true; break; case DAY_RETURN: b = getBetween(beginDate,endDate,YYYYMMDDHHMMSS,DAY_RETURN) > num ? false : true; break; case HOUR_RETURN: b = getBetween(beginDate,endDate,YYYYMMDDHHMMSS,HOUR_RETURN) > num ? false : true; break; case MINUTE_RETURN: b = getBetween(beginDate,endDate,YYYYMMDDHHMMSS,MINUTE_RETURN) > num ? false : true; break; case SECOND_RETURN: b = getBetween(beginDate,endDate,YYYYMMDDHHMMSS,SECOND_RETURN) > num ? false : true; break; default: break; } } catch (ParseException e) { e.printStackTrace(); } return b; } public static void main(String[] args) { System.out.println(validateIsExpire("2018-10-15 10:00:30", "2018-12-15 11:30:30", 1, 1)); } }
JAVA 日期过期校验辅助工具
猜你喜欢
转载自blog.csdn.net/qq_34479912/article/details/83067776
今日推荐
周排行