計算兩個時間相差幾天,幾分
阿新 • • 發佈:2019-01-07
import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; /** * 時間相距 * @author Ben * @version 1.0 * @date 2009-10-21 16:38:51 */ public class DateDistance { /** * 兩個時間之間相差距離多少天 * @param one 時間引數 1: * @param two 時間引數 2: * @return 相差天數 */ public static long getDistanceDays(String str1, String str2) throws Exception{ DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); Date one; Date two; long days=0; try { one = df.parse(str1); two = df.parse(str2); long time1 = one.getTime(); long time2 = two.getTime(); long diff ; if(time1<time2) { diff = time2 - time1; } else { diff = time1 - time2; } days = diff / (1000 * 60 * 60 * 24); } catch (ParseException e) { e.printStackTrace(); } return days; } /** * 兩個時間相差距離多少天多少小時多少分多少秒 * @param str1 時間引數 1 格式:1990-01-01 12:00:00 * @param str2 時間引數 2 格式:2009-01-01 12:00:00 * @return long[] 返回值為:{天, 時, 分, 秒} */ public static long[] getDistanceTimes(String str1, String str2) { DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date one; Date two; long day = 0; long hour = 0; long min = 0; long sec = 0; try { one = df.parse(str1); two = df.parse(str2); long time1 = one.getTime(); long time2 = two.getTime(); long diff ; if(time1<time2) { diff = time2 - time1; } else { diff = time1 - time2; } day = diff / (24 * 60 * 60 * 1000); hour = (diff / (60 * 60 * 1000) - day * 24); min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60); sec = (diff/1000-day*24*60*60-hour*60*60-min*60); } catch (ParseException e) { e.printStackTrace(); } long[] times = {day, hour, min, sec}; return times; } /** * 兩個時間相差距離多少天多少小時多少分多少秒 * @param str1 時間引數 1 格式:1990-01-01 12:00:00 * @param str2 時間引數 2 格式:2009-01-01 12:00:00 * @return String 返回值為:xx天xx小時xx分xx秒 */ public static String getDistanceTime(String str1, String str2) { DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date one; Date two; long day = 0; long hour = 0; long min = 0; long sec = 0; try { one = df.parse(str1); two = df.parse(str2); long time1 = one.getTime(); long time2 = two.getTime(); long diff ; if(time1<time2) { diff = time2 - time1; } else { diff = time1 - time2; } day = diff / (24 * 60 * 60 * 1000); hour = (diff / (60 * 60 * 1000) - day * 24); min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60); sec = (diff/1000-day*24*60*60-hour*60*60-min*60); } catch (ParseException e) { e.printStackTrace(); } return day + "天" + hour + "小時" + min + "分" + sec + "秒"; } //判斷超過三分鐘沒 public static String getDistanceTime(String str1, String str2) { DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date one; Date two; long min = 0; try { one = df.parse(str1); two = df.parse(str2); long time1 = one.getTime(); long time2 = two.getTime(); long diff ; if(time1<time2) { diff = time2 - time1; } else { diff = time1 - time2; } min = ((diff / (60 * 1000)); } catch (ParseException e) { e.printStackTrace(); } if(min>3){ return "超過了"; } return "沒有超過"; } }