public static DateTime getFirstWarningTime( int timeType, OrgDateTime orgDateTime, ReadableInstant fromTime, ReadableInstant beforeTime, OrgInterval defaultTimeOfDay, OrgInterval defaultWarningPeriod) { List<DateTime> times = OrgDateTimeUtils.getTimesInInterval( orgDateTime, fromTime, beforeTime, false, 1); for (DateTime time : times) { if (!orgDateTime.hasTime()) { time = time.plusHours(9); // TODO: Move to preferences } return time; } return null; }
Period intervalPeriod = gap.toPeriod(OrgDateTimeUtils.getPeriodType(repeater.getUnit())); int units = intervalPeriod.getValue(0); curr = time.withFieldAdded(OrgDateTimeUtils.getDurationFieldType(repeater.getUnit()), addUnits); OrgDateTimeUtils.getDurationFieldType(repeater.getUnit()), repeater.getValue() );
@Test public void testTimesInIntervalWithoutUpperBound() { assertThat( toStringArray(OrgDateTimeUtils.getTimesInInterval( OrgDateTime.parse("<2017-04-01 .+3d>"), DateTime.parse("2017-04-15T05:39:58"), null, true, 3)), is(toStringArray(Arrays.asList( DateTime.parse("2017-04-16"), DateTime.parse("2017-04-19"), DateTime.parse("2017-04-22"))))); }
@Test public void testTimeInFuture() { assertThat( toStringArray(OrgDateTimeUtils.getTimesInInterval( OrgDateTime.parse("<2017-07-16 Sun ++1w>"), DateTime.parse("2017-04-15T05:39:58"), null, true, 3)), is(toStringArray(Arrays.asList( DateTime.parse("2017-07-16"), DateTime.parse("2017-07-23"), DateTime.parse("2017-07-30"))))); }
@Test public void testTimesInIntervalIgnoringRepeater() { assertThat( toStringArray(OrgDateTimeUtils.getTimesInInterval( OrgDateTime.parse("<2017-04-01 .+3d>"), DateTime.parse("2017-04-15T05:39:58"), DateTime.parse("2017-04-20T05:39:58"), false, 0)), is(Collections.<String>emptyList())); }
@Test public void testTimesInInterval() { assertThat( toStringArray(OrgDateTimeUtils.getTimesInInterval( OrgDateTime.parse("<2017-04-01 .+3d>"), DateTime.parse("2017-04-15T05:39:58"), DateTime.parse("2017-04-20T05:39:58"), true, 0)), is(toStringArray(Arrays.asList( DateTime.parse("2017-04-16"), DateTime.parse("2017-04-19"))))); }
@Test public void testZeroRepeaterValue() { assertThat( toStringArray(OrgDateTimeUtils.getTimesInInterval( OrgDateTime.parse("<2017-04-16 .+0d>"), DateTime.parse("2017-04-15T05:39:58"), DateTime.parse("2017-04-20T05:39:58"), true, 0)), is(toStringArray(Arrays.asList( DateTime.parse("2017-04-16"))))); }
@Test public void testTimeInFutureIgnoringRepeater() { assertThat( toStringArray(OrgDateTimeUtils.getTimesInInterval( OrgDateTime.parse("<2017-07-16 Sun ++1w>"), DateTime.parse("2017-04-15T05:39:58"), null, false, 3)), is(toStringArray(Arrays.asList( DateTime.parse("2017-07-16"))))); }