標籤:style blog color ar java sp div on art
1 /** 2 * 計算兩個時間的相差值, 可以計算相差的天數, 年數, 月份數, 分鐘數, 秒數 3 * 4 * @param dateType 要得到的兩個時間之間差值的類型, 例如要得到兩個時間差的天數?還是小時數? 5 * @param startDate 開始時間 6 * @param endDate 結束時間 7 * @return (結束時間-開始時間) 之間的 dateType值 8 */ 9 public static int datediff(String dateType, Date startDate, Date endDate) {10 11 /* 求startDate與endDate之間相差的年數 */12 if ("y".equalsIgnoreCase(dateType) || "yy".equalsIgnoreCase(dateType)) {13 Calendar calendar = Calendar.getInstance();14 calendar.setTime(startDate);15 int startYear = calendar.get(Calendar.YEAR); //當前年的年份16 calendar.setTime(endDate);17 int endYear = calendar.get(Calendar.YEAR);18 return endYear - startYear;19 }20 /* 求startDate與endDate之間相差的月份數 */21 if ("M".equals(dateType) || "MM".equals(dateType)){22 Calendar calendar = Calendar.getInstance();23 calendar.setTime(startDate); 24 int startMonth = calendar.get(Calendar.MONTH)+calendar.get(Calendar.YEAR)*12; // 月份= 當前年的年份*12 + 當前年的月份, 下同25 calendar.setTime(endDate);26 int endMonth = calendar.get(Calendar.MONTH)+calendar.get(Calendar.YEAR)*12;27 return endMonth - startMonth;28 }29 /* 求startDate與endDate之間相差的天數 */30 if ("d".equalsIgnoreCase(dateType) || "dd".equalsIgnoreCase(dateType)) {31 long startTime = startDate.getTime();32 long endTime = endDate.getTime();33 return (int) ((endTime - startTime) / 1000 / 60 / 60 / 24); // 天數 = (結束時間-開始時間)之間的毫秒數 / (一天擁有的毫秒數)34 }35 /* 求startDate與endDate之間相差的小時數 */36 if ("h".equalsIgnoreCase(dateType) || "hh".equalsIgnoreCase(dateType)) {37 long startTime = startDate.getTime();38 long endTime = endDate.getTime();39 return (int) ((endTime - startTime) / 1000 / 60 / 60);40 }41 /* 求startDate與endDate之間相差的分鐘數 */42 if ("m".equals(dateType) || "mm".equals(dateType)) {43 long startTime = startDate.getTime();44 long endTime = endDate.getTime();45 return (int) ((endTime - startTime) / 1000 / 60);46 }47 /* 求startDate與endDate之間相差的秒數 */48 if ("s".equalsIgnoreCase(dateType) || "ss".equalsIgnoreCase(dateType)) {49 long startTime = startDate.getTime();50 long endTime = endDate.getTime();51 return (int) ((endTime - startTime) / 1000);52 }53 54 return 0;55 56 }
用java實現sql server中的datediff函數