获取两个时间之间的差值

来源:互联网 发布:silverlight 调用js 编辑:程序博客网 时间:2024/05/08 21:11
/*
     * 计算两个时间的时间差值
     * startTime:开始时间
     * endTime:结束时间
     * format:转变格式
     * str:输出日期样式(d:消失,h:小时,m:分钟,s:秒)
     * */
    public Long dateDiff(String startTime, String endTime,   
            String format, String str) {   
        // 按照传入的格式生成一个simpledateformate对象   
        SimpleDateFormat sd = new SimpleDateFormat(format);   
        long nd = 1000 * 24 * 60 * 60;// 一天的毫秒数   
        long nh = 1000 * 60 * 60;// 一小时的毫秒数   
        long nm = 1000 * 60;// 一分钟的毫秒数   
        long ns = 1000;// 一秒钟的毫秒数   
        long diff;   
        long day = 0;   
        long hour = 0;   
        long min = 0;   
        long sec = 0;   
        long timeDiffer = 0;
        // 获得两个时间的毫秒时间差异   
        try {   
            diff = sd.parse(endTime).getTime() - sd.parse(startTime).getTime();   
            day = diff / nd;// 计算差多少天   
            hour = diff % nd / nh + day * 24;// 计算差多少小时   
            min = diff % nd % nh / nm + day * 24 * 60;// 计算差多少分钟   
            sec = diff % nd % nh % nm / ns;// 计算差多少秒   
            // 输出结果   
            System.out.println("时间相差:" + day + "天" + (hour - day * 24) + "小时"  
                    + (min - day * 24 * 60) + "分钟" + sec + "秒。");   
            System.out.println("hour=" + hour + ",min=" + min);   
            if (str.equalsIgnoreCase("h"))
            {   
                return hour;   
            }
            else if(str.equalsIgnoreCase("d"))
            {   
                return day;   
            }   
            else if(str.equalsIgnoreCase("m"))
            {
                return min;
            }
            else
            {
                return sec;
            }
 
        } catch (ParseException e) {   
            e.printStackTrace();
            return timeDiffer;
        }   
        
    }

0 0