日付の差分日数(例:開始日「2016/01/01」、終了日「2016/01/31」なら差分日数「30」)を求めるJavaのサンプルソースです。
Javaソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
/** * <p>[概 要] 日付の差分日数取得処理</p> * <p>[詳 細] </p> * <p>[備 考] </p> * @param fromDate 開始日付 * @param toDate 終了日付 * @return 差分日数(パラメータがnullの場合は0を返します。) */ public static int getDiffDays(Date fromDate, Date toDate){ int diffDays = 0; if(fromDate != null && toDate != null) { // // getTimeメソッドで経過ミリ秒を取得し、2つの日付の差を求める long fromDateTime = fromDate.getTime(); long toDateTime = toDate.getTime(); // 経過ミリ秒÷(1000ミリ秒×60秒×60分×24時間)。端数切り捨て。 diffDays = (int)(( toDateTime - fromDateTime ) / (1000 * 60 * 60 * 24 )); } return diffDays; } |
JUnitサンプル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
@Test public void getDiffDaysTest() { // 期待値 int expected1 = 1; int expected2 = -1; int expected3 = 60; int expected4 = 0; int expected5 = 30; // 実行 Calendar cal = Calendar.getInstance(); cal.clear(); cal.set(2015, 12, 31); Date date1 = cal.getTime(); cal.set(2016, 1, 1); Date date2 = cal.getTime(); cal.set(2016, 3, 1); Date date3 = cal.getTime(); cal.set(2016, 1, 31); Date date4 = cal.getTime(); int result1 = UtilSample1.getDiffDays(date1, date2); int result2 = UtilSample1.getDiffDays(date2, date1); int result3 = UtilSample1.getDiffDays(date2, date3); int result4 = UtilSample1.getDiffDays(date1, date1); int result5 = UtilSample1.getDiffDays(date2, date4); // 検証 assertEquals("差分日数1が一致していません。", expected1, result1); assertEquals("差分日数2が一致していません。", expected2, result2); assertEquals("差分日数3が一致していません。", expected3, result3); assertEquals("差分日数4が一致していません。", expected4, result4); assertEquals("差分日数5が一致していません。", expected5, result5); } |