java 时间比较计算

  1. package ben.util;  
  2.   
  3. import java.text.DateFormat;  
  4. import java.text.ParseException;  
  5. import java.text.SimpleDateFormat;  
  6. import java.util.Date;  
  7.   
  8. /** 
  9. * 时间相距 
  10. * @author Ben 
  11. * @version 1.0 
  12. * @date 2009-10-21 16:38:51 
  13. */  
  14. public class DateDistance {  
  15.       
  16.     /** 
  17.      * 两个时间之间相差距离多少天 
  18.      * @param one 时间参数 1: 
  19.      * @param two 时间参数 2: 
  20.      * @return 相差天数 
  21.      */  
  22.     public static long getDistanceDays(String str1, String str2) throws Exception{  
  23.         DateFormat df = new SimpleDateFormat("yyyy-MM-dd");  
  24.         Date one;  
  25.         Date two;  
  26.         long days=0;  
  27.         try {  
  28.             one = df.parse(str1);  
  29.             two = df.parse(str2);  
  30.             long time1 = one.getTime();  
  31.             long time2 = two.getTime();  
  32.             long diff ;  
  33.             if(time1<time2) {  
  34.                 diff = time2 - time1;  
  35.             } else {  
  36.                 diff = time1 - time2;  
  37.             }  
  38.             days = diff / (1000 * 60 * 60 * 24);  
  39.         } catch (ParseException e) {  
  40.             e.printStackTrace();  
  41.         }  
  42.         return days;  
  43.     }  
  44.       
  45.     /** 
  46.      * 两个时间相差距离多少天多少小时多少分多少秒 
  47.      * @param str1 时间参数 1 格式:1990-01-01 12:00:00 
  48.      * @param str2 时间参数 2 格式:2009-01-01 12:00:00 
  49.      * @return long[] 返回值为:{天, 时, 分, 秒} 
  50.      */  
  51.     public static long[] getDistanceTimes(String str1, String str2) {  
  52.         DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
  53.         Date one;  
  54.         Date two;  
  55.         long day = 0;  
  56.         long hour = 0;  
  57.         long min = 0;  
  58.         long sec = 0;  
  59.         try {  
  60.             one = df.parse(str1);  
  61.             two = df.parse(str2);  
  62.             long time1 = one.getTime();  
  63.             long time2 = two.getTime();  
  64.             long diff ;  
  65.             if(time1<time2) {  
  66.                 diff = time2 - time1;  
  67.             } else {  
  68.                 diff = time1 - time2;  
  69.             }  
  70.             day = diff / (24 * 60 * 60 * 1000);  
  71.             hour = (diff / (60 * 60 * 1000) - day * 24);  
  72.             min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60);  
  73.             sec = (diff/1000-day*24*60*60-hour*60*60-min*60);  
  74.         } catch (ParseException e) {  
  75.             e.printStackTrace();  
  76.         }  
  77.         long[] times = {day, hour, min, sec};  
  78.         return times;  
  79.     }  
  80.   
  81.     /** 
  82.      * 两个时间相差距离多少天多少小时多少分多少秒 
  83.      * @param str1 时间参数 1 格式:1990-01-01 12:00:00 
  84.      * @param str2 时间参数 2 格式:2009-01-01 12:00:00 
  85.      * @return String 返回值为:xx天xx小时xx分xx秒 
  86.      */  
  87.     public static String getDistanceTime(String str1, String str2) {  
  88.         DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
  89.         Date one;  
  90.         Date two;  
  91.         long day = 0;  
  92.         long hour = 0;  
  93.         long min = 0;  
  94.         long sec = 0;  
  95.         try {  
  96.             one = df.parse(str1);  
  97.             two = df.parse(str2);  
  98.             long time1 = one.getTime();  
  99.             long time2 = two.getTime();  
  100.             long diff ;  
  101.             if(time1<time2) {  
  102.                 diff = time2 - time1;  
  103.             } else {  
  104.                 diff = time1 - time2;  
  105.             }  
  106.             day = diff / (24 * 60 * 60 * 1000);  
  107.             hour = (diff / (60 * 60 * 1000) - day * 24);  
  108.             min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60);  
  109.             sec = (diff/1000-day*24*60*60-hour*60*60-min*60);  
  110.         } catch (ParseException e) {  
  111.             e.printStackTrace();  
  112.         }  
  113.         return day + "天" + hour + "小时" + min + "分" + sec + "秒";  
  114.     }  
  115. }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风起未来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值