Use joda to determine one month from now

pull/73/head
Alex Baker 12 years ago
parent 2c159b78aa
commit 6de73f63f5

@ -9,6 +9,7 @@ import android.content.Context;
import android.text.format.DateFormat;
import android.text.format.DateUtils;
import org.joda.time.DateTime;
import org.tasks.api.R;
import java.text.ParseException;
@ -58,9 +59,14 @@ public class DateUtilities {
/** Returns unixtime one month from now */
public static long oneMonthFromNow() {
Date date = newDate();
date.setMonth(date.getMonth() + 1);
return date.getTime();
final DateTime now = DateTime.now();
DateTime result = now.plusMonths(1);
// preserving java.util.date behavior
int diff = now.getDayOfMonth() - result.getDayOfMonth();
if(diff > 0) {
result = result.plusDays(diff);
}
return result.getMillis();
}
/** Represents a single hour */

@ -107,6 +107,16 @@ public class DateUtilitiesTest extends TodorooRobolectricTestCase {
assertEquals(0, cal.get(Calendar.SECOND));
}
@Test
public void oneMonthFromStartOfDecember() {
DateTime now = new DateTime(2013, 12, 1, 12, 19, 45, 192);
final long expected = new DateTime(2014, 1, 1, 12, 19, 45, 192).getMillis();
freezeAt(now).thawAfter(new Snippet() {{
assertEquals(expected, oneMonthFromNow());
}});
}
@Test
public void oneMonthFromEndOfDecember() {
DateTime now = new DateTime(2013, 12, 31, 16, 31, 20, 597);

Loading…
Cancel
Save