@Override public PeriodValue previous() { return plusDays(-1); }
@Override public void advance(int count) { currentDay = currentDay.plusDays(count); }
public LocalDate previousDay() { return plusDays(-1); }
public LocalDate nextDay() { return plusDays(+1); }
@Override public PeriodValue next() { return plusDays(1); }
@Override public LocalDateInterval asInterval() { LocalDate firstDayOfYear = dayOfFirstEpiWeek(this.year); LocalDate firstDayOfWeek = firstDayOfYear.plusDays((this.weekInYear - 1) * 7); LocalDate lastDayOfWeek = firstDayOfWeek.plusDays(6); return new LocalDateInterval(firstDayOfWeek, lastDayOfWeek); }
@Override public FieldValue apply(List<FieldValue> arguments) { LocalDate date = (LocalDate) arguments.get(0); Quantity days = (Quantity) arguments.get(1); return date.plusDays((int) days.getValue()); }
@Override public Tab get(int i) { return get(currentDay.plusDays(i)); }
/** * @return the date after which the user should be again warned */ public LocalDate snoozeDate(Date now) { int daysLeft = daysUntilExpiration(now); LocalDate today = new LocalDate(now); if(trial) { if(daysLeft < 7) { return today.plusDays(1); } else { return today.plusDays(4); } } else { LocalDate expirationDay = new LocalDate(new Date(expirationTime * 1000L)); int weeksLeft = Math.floorDiv(daysLeft, 7); if (weeksLeft <= 1) { return today.plusDays(1); } else if (weeksLeft <= 2) { return expirationDay.plusDays(-1 * DAYS_PER_WEEK); } else if (weeksLeft <= 3) { return expirationDay.plusDays(-2 * DAYS_PER_WEEK); } else if (weeksLeft <= 4) { return expirationDay.plusDays(-3 * DAYS_PER_WEEK); } else { return expirationDay.plusDays(-4 * DAYS_PER_WEEK); } } }
/** * @return the date after which the user should be nudged again for payment */ public LocalDate paymentSnoozeDate(Date now) { int daysLeft = daysUntilExpectedPayment(now); LocalDate today = new LocalDate(now); LocalDate expectedPaymentDay = new LocalDate(new Date(expirationTime * 1000L)); if (daysLeft <= 3) { // Show each day for last three days prior to payment return today.plusDays(1); } else if (daysLeft <= 7) { // Show again on third day before payment return expectedPaymentDay.plusDays(-3); } else { // Show again next week return expectedPaymentDay.plusDays(-1 * DAYS_PER_WEEK); } }
@Override public LocalDateInterval asInterval() { LocalDate startDate = startWeek.asInterval().getStartDate(); LocalDate endDate = startDate.plusDays(13); return new LocalDateInterval(startDate, endDate); }
@Override public ColumnView columnApply(int numRows, List<ColumnView> arguments) { ColumnView dateView = arguments.get(0); ColumnView daysView = arguments.get(1); String[] result = new String[dateView.numRows()]; for (int i = 0; i < dateView.numRows(); i++) { LocalDate date = LocalDate.parse(dateView.getString(i)); int days = (int)daysView.getDouble(i); result[i] = date.plusDays(days).toString(); } return new StringArrayColumnView(result); } }
@Test public void dateEncoding() { LocalDate start = new LocalDate(1999, 11, 15); for (int i = 0; i < 400; i++) { checkRoundTrip(start.plusDays(i)); } }
for (int j = 0; j < block.getBlockSize(); j++) { block.update(blockEntity, j, date); date = date.plusDays(1); assertThat(view.numRows(), equalTo(block.getBlockSize() * 3 - 1)); assertThat(view.getString(0), equalTo(startDate.toString())); assertThat(view.getString(1), equalTo(startDate.plusDays(1).toString())); assertThat(view.getString(2), equalTo(startDate.plusDays(3).toString())); assertThat(view.getString(3), equalTo(startDate.plusDays(4).toString())); assertThat(view.getString(block.getBlockSize()), equalTo(startDate.plusDays(block.getBlockSize() + 1).toString())); assertThat(selected.getString(0), equalTo(startDate.plusDays(1).toString()));