zoukankan      html  css  js  c++  java
  • JAVA 时间差距,两个时间相差多少天,时,分,秒

    JAVA 时间差距,两个时间相差多少天,时,分,秒

    package io;
    
    import java.text.DateFormat;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    /**
     * 时间相距
     * 
     * @author Ben
     * @version 1.0
     * @date 2009-10-21 16:38:51
     */
    public class DateDistance {
    
        /**
         * 两个时间之间相差距离多少天
         * 
         * @param one
         *            时间参数 1:
         * @param two
         *            时间参数 2:
         * @return 相差天数
         */
        public static long getDistanceDays(String str1, String str2)
                throws Exception {
            DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
            Date one;
            Date two;
            long days = 0;
            try {
                one = df.parse(str1);
                two = df.parse(str2);
                long time1 = one.getTime();
                long time2 = two.getTime();
                long diff;
                if (time1 < time2) {
                    diff = time2 - time1;
                } else {
                    diff = time1 - time2;
                }
                days = diff / (1000 * 60 * 60 * 24);
            } catch (ParseException e) {
                e.printStackTrace();
            }
            return days;
        }
    
        /**
         * 两个时间相差距离多少天多少小时多少分多少秒
         * 
         * @param str1
         *            时间参数 1 格式:1990-01-01 12:00:00
         * @param str2
         *            时间参数 2 格式:2009-01-01 12:00:00
         * @return long[] 返回值为:{天, 时, 分, 秒}
         */
        public static long[] getDistanceTimes(String str1, String str2) {
            DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date one;
            Date two;
            long day = 0;
            long hour = 0;
            long min = 0;
            long sec = 0;
            try {
                one = df.parse(str1);
                two = df.parse(str2);
                long time1 = one.getTime();
                long time2 = two.getTime();
                long diff;
                if (time1 < time2) {
                    diff = time2 - time1;
                } else {
                    diff = time1 - time2;
                }
                day = diff / (24 * 60 * 60 * 1000);
                hour = (diff / (60 * 60 * 1000) - day * 24);
                min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60);
                sec = (diff / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60);
            } catch (ParseException e) {
                e.printStackTrace();
            }
            long[] times = { day, hour, min, sec };
            return times;
        }
    
        /**
         * 两个时间相差距离多少天多少小时多少分多少秒
         * 
         * @param str1
         *            时间参数 1 格式:1990-01-01 12:00:00
         * @param str2
         *            时间参数 2 格式:2009-01-01 12:00:00
         * @return String 返回值为:xx天xx小时xx分xx秒
         */
        public static String getDistanceTime(String str1, String str2) {
            DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date one;
            Date two;
            long day = 0;
            long hour = 0;
            long min = 0;
            long sec = 0;
            try {
                one = df.parse(str1);
                two = df.parse(str2);
                long time1 = one.getTime();
                long time2 = two.getTime();
                long diff;
                if (time1 < time2) {
                    diff = time2 - time1;
                } else {
                    diff = time1 - time2;
                }
                day = diff / (24 * 60 * 60 * 1000);
                hour = (diff / (60 * 60 * 1000) - day * 24);
                min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60);
                sec = (diff / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60);
            } catch (ParseException e) {
                e.printStackTrace();
            }
            return day + "天" + hour + "小时" + min + "分" + sec + "秒";
        }
    
        public static void main(String[] args) {
            String str = getDistanceTime("2014-1-7 12:12:33.0",
                    "2014-6-6 12:12:12.0");
            System.out.println(str);
        }
    }

    转自 : http://hi.baidu.com/odnvxdpbiqimnwr/item/192ca00d13e9e50b6d90483a

  • 相关阅读:
    Windows PE导出表编程3(暴力覆盖导出函数)
    Windows PE导出表编程3(暴力覆盖导出函数)
    Windows PE导出表编程2(重组导出表函数地址)
    Windows PE导出表编程2(重组导出表函数地址)
    Windows核心编程 第二十章 DLL的高级操作技术
    Windows核心编程 第二十章 DLL的高级操作技术
    Windows核心编程 第十九章 DLL基础
    CodeForces A. Points in Segments
    PAT 甲级 1031 Hello World for U
    PAT L1-006 连续因子
  • 原文地址:https://www.cnblogs.com/mjorcen/p/3844896.html
Copyright © 2011-2022 走看看