用java實現sql server中的datediff函數

來源:互聯網
上載者:User

標籤: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函數

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.