日期格式工具006——日期之间的比较和验证

日期格式工具类基础版006

对常用的日期转换,提供工具类,并通过深度剖析,进行工具类升级

在日常开发中,我们经常需要对日期时间与字符串之间的转换,现将通用方法进行工具类提取和剖析。

针对简单日期工具转换进行升级,实现简单的时间加减。

升级日期加减的方法

时间日期的处理,获取日期的周初、周末,月初、月末,年初、年末,日初、日末;

获取日期 所属年份的第几天、所属月份的第几天、所属周的第几天、所属年的第几周、所属年的第几月

上一篇:日期格式工具005——获取日期 所属年份的第几天、所属月份的第几天、所属周的第几天、所属年的第几周、所属年的第几月

日期之间的比较和验证

    /**
     * 日期合法性校验
     * @param dateStr 需要校验的日期字符串,格式可以是yyyy-MM-dd、yyyy/MM/dd、yyyyMMdd
     * @return true-合法;false-不合法
     */
    public static boolean isValidDate(String dateStr) {
        String matchPattern = "^((\\d{2}(([02468][048])|([13579][26]))"
                + "[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|"
                + "(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?"
                + "((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-\\/\\s]?("
                + "(((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?"
                + "((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))";
        Pattern pattern = Pattern.compile(matchPattern);
        Matcher match = pattern.matcher(dateStr);
        return match.matches();
    }

    /**
     * 得到字符串形式的当前时间,日期格式采用默认的格式.
     * @return String
     */
    public static String getCurrentDate() {
        Date date = new Date();
        return dateString(date, DEFAULT_DATE_FORMAT);
    }


    /**
     * 比较两个时间之间相差的月份数
     * @param beginDate 开始时间
     * @param endDate 结束时间
     * @return
     */
    public static int compareMonth(Date beginDate, Date endDate){
        Calendar aCalendar = Calendar.getInstance();
        aCalendar.setTime(beginDate);
        int year1 = aCalendar.get(Calendar.YEAR);
        int month1 = aCalendar.get(Calendar.MONTH);
        aCalendar.setTime(endDate);
        int year2 = aCalendar.get(Calendar.YEAR);
        int month2 = aCalendar.get(Calendar.MONTH);
        return 12*(year2-year1)+month2-month1;
    }

    /**
     * 比较两个时间之间相差的天数
     * @param beginDate 开始时间
     * @param endDate 结束时间
     * @return
     */
    public static int compareDay(Date beginDate, Date endDate){
        long beginDateTime = beginDate.getTime();
        long endDateTime = endDate.getTime();
        long dayLong = 1000 * 60 * 60 * 24;
        long beginDateLong = beginDateTime / dayLong;
        long endDateLong = endDateTime / dayLong;
        int compare = (int) (endDateLong - beginDateLong);
        return compare;
    }

    /**
     * 检查指定时间是否在某个时间范围内(闭区间)
     * @param date Date 指定时间
     * @param beginDate 范围开始时间
     * @param endDate  范围结束时间
     * @return  true-在范围内, false-不在范围内
     */
    public static boolean isInRange(Date date, Date beginDate, Date endDate) {
        if (date.compareTo(beginDate)>=0 && date.compareTo(endDate) <= 0) {
            return true;
        } else {
            return false;
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
测试 006版 注意: 请输入抢拍商品的URL:先选择抢拍商品,然后复制地址栏中的地址,然后粘贴到上面. 请输抢购时间:H(小时)M(分钟)S(秒) 你的系统时间应该和拍拍的系统时间一至,不一至的话抢拍时间肯定不准确,这样会造成严重失误. 运行时会初始为系统当前时间。 抢拍时最好先运行一个网页,且为登陆状态. 建义使用方法: 一)运行本程序 二)选择抢拍的商品并将地址粘贴至上面,依次输入此商品开始抢拍的小时,分钟,以及秒(必须有值,秒和分钟可以为零),持续时间为分钟,建义不要超过十分钟,默认为五分钟不能为零或负数。 三)点击点击 ,程序会打开一个网页,如果提示需要登陆时请登陆并且最好不要关闭此网页,在使用时最好打开一个已登陆的网页,并且可以随时的点击此按钮查看登陆状态(一般登陆半小时后将需要重新登陆),如果打开一个未显示的网页,可能你的抢拍商品地址有误 四)然后点击 ,这时程序会根据预设抢拍时间和系统时间的时间差以秒为单位倒记时并在等待时间信息框中显示,直至倒记数为零,然后开始抢拍,抢拍周期时间是预设持续时间并以倒记时方式在抢拍时间框中显示倒记数,每秒钟抢拍次数根据设定的抢拍次数而定。当抢拍到时抢拍时间会停止显示并且打开一个抢拍商品的网页。 五)每秒抢拍次数设定值越大时抢拍的成功率就越高,比如设置为两次就表示每500毫秒抢拍一次,设置为五次表示每200毫秒抢拍一次。当然这是要根据系统性能而定的,测试笔记本AMD turion64*2 2.10GHz CPU,2.00GB内存设定为每秒抢拍两次就够了,如果设置过高会造成系本工具运行异常,从而出现持续刷新抢拍成功页面,而导至抢拍成功率下降。 六)要随时注意你当前是否是登陆状态。并且在开始抢购前先查看连接。 七)请在IE环境下远行本工具。 八)资源地址(以后程序更新地址,欢迎提义见和交流):http://download.csdn.net/user/binhelive 作者:小贺 通信:msn:binhelive@hotmail.com Q Q:184680584 我有开拍拍卖家和淘宝卖家,欢迎访问. 如有侵犯或违反你的相关权利请连系我,我会删除一切版本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值