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 }