zoukankan      html  css  js  c++  java
  • 时间校验

    获取时间差(一)--年份、月份

    public static int getYearsByTwoDates(Date date1,Date date2){
            Calendar date1Ca = Calendar.getInstance();
            date1Ca.setTime(date1);
            Calendar date2Ca = Calendar.getInstance();
            date2Ca.setTime(date2);
            if(date2Ca.getTimeInMillis() < date1Ca.getTimeInMillis()) return -1;
            int beginYear = date1Ca.get(Calendar.YEAR);
            int endYear = date2Ca.get(Calendar.YEAR);
            int beginMonth = date1Ca.get(Calendar.MONTH)+1;
            int endMonth = date2Ca.get(Calendar.MONTH)+1;
            int beginDay = date1Ca.get(Calendar.DAY_OF_MONTH);
            int endDay = date2Ca.get(Calendar.DAY_OF_MONTH);
            int yearInterval = endYear - beginYear;
            if(endMonth < beginMonth){
                yearInterval--;
            }
            boolean beginBool = DateUtil.isMonthEnd(beginYear,beginMonth,beginDay);
            boolean endBool = DateUtil.isMonthEnd(endYear,endMonth,endDay);
            if(endMonth == beginMonth){
                if(beginBool && endBool){
                    return yearInterval;
                }else if(!beginBool && endBool &&  endDay <= beginDay){
                    return yearInterval;
                }else if(!beginBool && !endBool &&  endDay == beginDay){
                    return yearInterval;                
                }else{
                    return -1;
                }
            }else{
                return -1;
            }   
        }
    public static int getMonthsByTwoDates(Date date1,Date date2){
            Calendar date1Ca = Calendar.getInstance();
            date1Ca.setTime(date1);
            Calendar date2Ca = Calendar.getInstance();
            date2Ca.setTime(date2);
            if(date2Ca.getTimeInMillis() < date1Ca.getTimeInMillis()) return -1;
            int beginYear = date1Ca.get(Calendar.YEAR);
            int endYear = date2Ca.get(Calendar.YEAR);
            int beginMonth = date1Ca.get(Calendar.MONTH)+1;
            int endMonth = date2Ca.get(Calendar.MONTH)+1;
            int beginDay = date1Ca.get(Calendar.DAY_OF_MONTH);
            int endDay = date2Ca.get(Calendar.DAY_OF_MONTH);
            boolean beginBool = DateUtil.isMonthEnd(beginYear,beginMonth,beginDay);
            boolean endBool = DateUtil.isMonthEnd(endYear,endMonth,endDay);
            // 获取年的差值 假设 d2 = 2012-4-30 d1 = 2012-3-31
            int yearInterval = endYear - beginYear;
            // 如果 d1的 月-日 小于 d2的 月-日 那么 yearInterval-- 这样就得到了相差的年数
            if(yearInterval == 0 || yearInterval ==1){
                if(endMonth < beginMonth || endMonth == beginMonth && ((endDay < beginDay) && (!beginBool || !endBool))) yearInterval --;
                // 获取月数差值
                int monthInterval = (endMonth + 12) - beginMonth ;
                if(endDay < beginDay && (!beginBool && !endBool)) monthInterval --;
                monthInterval %= 12;
                int month = yearInterval * 12 + monthInterval;
                
                if(beginBool && endBool){
                    return month;
                }else if(!beginBool && endBool &&  endDay <= beginDay){
                    return month;
                }else if(!beginBool && !endBool &&  endDay == beginDay){
                    return month;
                }else{
                    return -1;
                }
            }
            return -1;
            
            
        }
    
    
    
    
    

    获取时间差(二)

    public static int getYearsByTwoDates2(Date date1,Date date2){
            Calendar date1Ca = Calendar.getInstance();
            date1Ca.setTime(date1);
            Calendar date2Ca = Calendar.getInstance();
            date2Ca.setTime(date2);
            date1Ca.add(Calendar.MONTH, 12);
            if(date2Ca.getTime().getTime() >= date1Ca.getTime().getTime()){
                return 1;
            }else{
                return -1;
            }
        }

    判断当前日是否是当月最后一天方法

    public static boolean isMonthEnd(int year,int month,int day) {
            switch(month) {
                case 1:
                case 3:
                case 5:
                case 7:
                case 8:
                case 10:
                case 12:
                    if (day == 31) {
                        return true;
                    }
                    return false;
                case 4:
                case 6:
                case 9:
                case 11:
                    if (day == 30) {
                        return true;
                    }
                    return false;
                case 2:
                    if (isLeapYear(year) && day == 29) {
                        return true;
                    }
                    else if (!isLeapYear(year) && day == 28) {
                        return true;
                    }
                    return false;
                default:
                    return false;
            }
            }
        //判断是否是闰年
        public    static boolean isLeapYear(int year) {
                if(year%4 ==0 || year%400 ==0){
                    return true;
                }else{
                    return false;
                }
            } 
  • 相关阅读:
    FuelPHP 系列(三) ------ Model 模型
    FuelPHP 系列(二) ------ route 路由
    FuelPHP 系列(一) ------ Oil 命令
    微信小程序初探
    基于 Laravel 的 文件管理
    laravel(一)
    Git从零开始(三)
    Git从零开始(二)
    Git从零开始(一)
    Linux服务器学习(二)
  • 原文地址:https://www.cnblogs.com/shenqz/p/7232643.html
Copyright © 2011-2022 走看看