厄介なことに、 withTimeAtStartOfDay の回答は間違っていますが、たまにしかありません。あなたがしたい:
Days.daysBetween(start.toLocalDate(), end.toLocalDate()).getDays()
"真夜中/一日の始まり" は午前 1 時を意味する場合があり (一部の地域では夏時間はこのように行われます)、Days.daysBetween はこれを適切に処理しません。
// 5am on the 20th to 1pm on the 21st, October 2013, Brazil
DateTimeZone BRAZIL = DateTimeZone.forID("America/Sao_Paulo");
DateTime start = new DateTime(2013, 10, 20, 5, 0, 0, BRAZIL);
DateTime end = new DateTime(2013, 10, 21, 13, 0, 0, BRAZIL);
System.out.println(daysBetween(start.withTimeAtStartOfDay(),
end.withTimeAtStartOfDay()).getDays());
// prints 0
System.out.println(daysBetween(start.toLocalDate(),
end.toLocalDate()).getDays());
// prints 1
LocalDate
問題全体を回避します。