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 }