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. }  
发布了52 篇原创文章 · 获赞 44 · 访问量 24万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览