Java日期時間差以及獲取幾天后或幾天前


 1 /**
 2      * @param date
 3      * @param day 想要獲取的日期與傳入日期的差值 比如想要獲取傳入日期前四天的日期 day=-4即可
 4      * @return
 5      */
 6     public static Date getSomeDay(Date date, int day){
 7         Calendar calendar = Calendar.getInstance();
 8         calendar.setTime(date);
 9         calendar.add(Calendar.DATE, day);
10         return calendar.getTime();
11     }
12     
13     /**
14      * 日期差天數、小時、分鍾、秒數組
15      * @param startDate
16      * @param endDate
17      * @return
18      */
19     public static long[] getDisTime(Date startDate, Date endDate){
20         long timesDis = Math.abs(startDate.getTime() - endDate.getTime());
21         long day = timesDis / (1000 * 60 * 60 * 24);
22         long hour = timesDis / (1000 * 60 * 60) - day * 24;
23         long min = timesDis / (1000 * 60) - day * 24 * 60 - hour * 60;
24         long sec = timesDis / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60;
25         return new long[]{day, hour, min, sec};
26     }
27     
28     /**
29      * 日期差天數
30      * @param startDate
31      * @param endDate
32      * @return
33      */
34     public static long getDisDay(Date startDate, Date endDate){
35         long[] dis = getDisTime(startDate, endDate);
36         long day = dis[0];
37         if (dis[1] > 0 || dis[2] > 0 || dis[3] > 0) {
38             day += 1;
39         }
40         return day;
41     }
42     
43     /**
44      * 日期差文字描述
45      * @param startDate
46      * @param endDate
47      * @return
48      */
49     public static String getDisTimeStr(Date startDate, Date endDate){
50         long[] dis = getDisTime(startDate, endDate);
51         return new StringBuilder().append(dis[0]).append("天").append(dis[1]).append("小時").append(dis[2]).append("分鍾")
52                 .append(dis[3]).append("秒").toString();
53     }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM