Skip to content

Instantly share code, notes, and snippets.

@froop
Created January 12, 2012 02:50
Show Gist options
  • Select an option

  • Save froop/1598255 to your computer and use it in GitHub Desktop.

Select an option

Save froop/1598255 to your computer and use it in GitHub Desktop.
[Java] 日数計算
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;
}
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