Created
January 12, 2012 02:50
-
-
Save froop/1598255 to your computer and use it in GitHub Desktop.
[Java] 日数計算
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import org.apache.commons.lang.time.DateUtils; | |
| public static long differenceDay(Date date1, Date date2) { | |
| final long millsecsOfDay = 24 * 60 * 60 * 1000; | |
| Date day1 = DateUtils.truncate(date1, Calendar.DATE); | |
| Date day2 = DateUtils.truncate(date2, Calendar.DATE); | |
| return (day1.getTime() - day2.getTime()) / millsecsOfDay; | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| private Date date1; | |
| @Before | |
| public void setUp() throws Exception { | |
| Calendar cal = Calendar.getInstance(); | |
| cal.set(2011, Calendar.AUGUST, 31, 12, 0, 30); | |
| date1 = cal.getTime(); | |
| } | |
| @Test | |
| public void testDifferenceDayLastTime() { | |
| Calendar cal = Calendar.getInstance(); | |
| cal.set(2011, Calendar.JULY, 31, 23, 59, 59); | |
| Date date2 = cal.getTime(); | |
| assertEquals(31, differenceDay(date1, date2)); | |
| } | |
| @Test | |
| public void testDifferenceDayFirstTime() { | |
| Calendar cal = Calendar.getInstance(); | |
| cal.set(2011, Calendar.JULY, 31, 0, 0, 0); | |
| Date date2 = cal.getTime(); | |
| assertEquals(31, differenceDay(date1, date2)); | |
| } | |
| @Test | |
| public void testDifferenceDayFirstDayOfThisMonth() { | |
| Calendar cal = Calendar.getInstance(); | |
| cal.set(2011, Calendar.AUGUST, 1); | |
| Date date2 = cal.getTime(); | |
| assertEquals(30, differenceDay(date1, date2)); | |
| } | |
| @Test | |
| public void testDifferenceDaySameDayOfPrevYear() { | |
| Calendar cal = Calendar.getInstance(); | |
| cal.set(2010, Calendar.AUGUST, 31); | |
| Date date2 = cal.getTime(); | |
| assertEquals(365, differenceDay(date1, date2)); | |
| } | |
| @Test | |
| public void testDifferenceDayZero() { | |
| Calendar cal = Calendar.getInstance(); | |
| cal.set(2011, Calendar.AUGUST, 31); | |
| Date date2 = cal.getTime(); | |
| assertEquals(0, differenceDay(date1, date2)); | |
| } | |
| @Test | |
| public void testDifferenceDayMinus() { | |
| Calendar cal = Calendar.getInstance(); | |
| cal.set(2011, Calendar.SEPTEMBER, 1); | |
| Date date2 = cal.getTime(); | |
| assertEquals(-1, differenceDay(date1, date2)); | |
| } | |
| @Test | |
| public void testDifferenceDayLarge() { | |
| Calendar cal = Calendar.getInstance(); | |
| cal.set(1970, Calendar.JANUARY, 1); | |
| Date date2 = cal.getTime(); | |
| assertEquals(15217, differenceDay(date1, date2)); | |
| } | |
| @Test | |
| public void testDateUtilsTruncate() { | |
| Calendar cal = Calendar.getInstance(); | |
| cal.set(2010, Calendar.JULY, 31, 23, 59, 59); | |
| assertEquals(23, cal.get(Calendar.HOUR_OF_DAY)); | |
| assertEquals(59, cal.get(Calendar.MINUTE)); | |
| assertEquals(59, cal.get(Calendar.SECOND)); | |
| cal.setTime(DateUtils.truncate(cal.getTime(), Calendar.DATE)); | |
| assertEquals(0, cal.get(Calendar.HOUR_OF_DAY)); | |
| assertEquals(0, cal.get(Calendar.MINUTE)); | |
| assertEquals(0, cal.get(Calendar.SECOND)); | |
| assertEquals(2010, cal.get(Calendar.YEAR)); | |
| assertEquals(Calendar.JULY, cal.get(Calendar.MONTH)); | |
| assertEquals(31, cal.get(Calendar.DAY_OF_MONTH)); | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment