时间段判断工具类InDateUtil

来源:互联网 发布:2017广州恒大淘宝赛程表 编辑:程序博客网 时间:2024/06/05 18:03

时间段判断工具类InDateUtil

  1. 在开发中遇到判断当前时间是否在某个时间段的需求,时间段可以跨越24:00时,如判断当前时间是否在23:00至06:00内;随手写下这个方法。便以后查阅。
import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;/** *  * @Description: 判断某时间是否在某时段内 * @author: zrk * @time: 2015年5月7日 上午9:49:04 */public class InDateUtil {    public static void main(String[] args) {        System.out.println(isInDate(new Date(), "06:00", "12:00","HH:mm"));        //System.out.println(isInDate(new Date(), "23:00", "06:30","HH:mm"));        //System.out.println(isInDate(new Date(), "23:00:00", "06:30:30","HH:mm:ss"));    }    /**     *      * @param date          输入的时间     * @param strDateBegin  时段开始时间     * @param strDateEnd    时段结束时间     * @param dateFormatStr 格式(HH:mm 或 HH:mm:ss)     * @return     */    public static boolean isInDate(Date date, String strDateBegin,String strDateEnd,String dateFormatStr) {        SimpleDateFormat afterSdf = new SimpleDateFormat(dateFormatStr);        Date dBegin = null;        Date dEnd = null;        try {            dBegin = afterSdf.parse(strDateBegin);            dEnd = afterSdf.parse(strDateEnd);        } catch (ParseException e) {            e.printStackTrace();        }        Calendar calPlayer = Calendar.getInstance();        calPlayer.setTime(date);        Calendar calBegin = Calendar.getInstance();        calBegin.setTime(dBegin);        Calendar calEnd = Calendar.getInstance();        calEnd.setTime(dEnd);        Calendar calendar = Calendar.getInstance();        calBegin.set(calendar.get(Calendar.YEAR) , calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH));        calEnd.set(calendar.get(Calendar.YEAR) , calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH));        if(calEnd.after(calBegin)){            if(calPlayer.before(calEnd)&&calPlayer.after(calBegin))                return true;            else                                return false;        }else if(calBegin.after(calEnd)){            if(isInDate(date,afterSdf.format(calBegin.getTime()),"23:59:59",dateFormatStr))                return true;            else if(isInDate(date,"00:00:00",afterSdf.format(calEnd.getTime()),dateFormatStr))                return true;            else                 return false;        }else {            return false;        }    }}
0 0
原创粉丝点击