当前位置: 代码迷 >> 综合 >> JAVA 日期过期校验辅助工具
  详细解决方案

JAVA 日期过期校验辅助工具

热度:103   发布时间:2023-09-29 04:23:02.0
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));}
}