@Override public Span getOffset(Span span, int amount, Pointer.PointerType pointer) { int direction = (pointer == Pointer.PointerType.FUTURE) ? 1 : -1; Calendar newBegin = Time.cloneAndAdd(span.getBeginCalendar(), Calendar.YEAR, amount * direction); Calendar newEnd = Time.cloneAndAdd(span.getEndCalendar(), Calendar.YEAR, amount * direction); return new Span(newBegin, newEnd); }
/** * Subtract a number of seconds to this span, returning the * resulting Span */ public Span subtract(long seconds) { return add(-seconds); }
@Override protected int _getWidth(Range range) { int width = (int) range.getWidth(); return width; } }
@Override protected Span _thisSpan(PointerType pointer) { Calendar rangeStart = Time.cloneAndAdd(Time.ymd(getNow()), Calendar.SECOND, _range.getBegin()); _currentSpan = new Span(rangeStart, Time.cloneAndAdd(rangeStart, Calendar.SECOND, _range.getWidth())); return _currentSpan; }
@Override public Span getOffset(Span span, int amount, PointerType pointer) { int direction = (pointer == Pointer.PointerType.FUTURE) ? 1 : -1; RepeaterWeekend weekend = new RepeaterWeekend(); weekend.setStart(span.getBeginCalendar()); Calendar start = Time.cloneAndAdd(weekend.nextSpan(pointer).getBeginCalendar(), Calendar.SECOND, (amount - 1) * direction * RepeaterWeek.WEEK_SECONDS); return new Span(start, Time.cloneAndAdd(start, Calendar.SECOND, span.getWidth())); }
@Override protected Span _nextSpan(PointerType pointer) { int direction = (pointer == Pointer.PointerType.FUTURE) ? 1 : -1; if (_currentMonthStart == null) { _currentMonthStart = Time.cloneAndAdd(Time.ym(getNow()), Calendar.MONTH, direction); } else { _currentMonthStart = Time.cloneAndAdd(_currentMonthStart, Calendar.MONTH, direction); } return new Span(_currentMonthStart, Calendar.MONTH, 1); }
@Override protected Span _nextSpan(PointerType pointer) { int direction = (pointer == Pointer.PointerType.FUTURE) ? 1 : -1; if (_secondStart == null) { _secondStart = Time.cloneAndAdd(getNow(), Calendar.SECOND, direction); } else { _secondStart.add(Calendar.SECOND, direction); } return new Span(_secondStart, Calendar.SECOND, 1); }
public static Calendar yJan1(Calendar basis) { Calendar clone = Time.y(basis, 1, 1); return clone; }
public Span(Calendar begin, int field, long amount) { this(begin, Time.cloneAndAdd(begin, field, amount)); }
public Tick times(int other) { return new Tick(_time * other, _ambiguous); }
@Override public Span getOffset(Span span, int amount, Pointer.PointerType pointer) { int direction = (pointer == Pointer.PointerType.FUTURE) ? 1 : -1; return new Span(Time.cloneAndAdd(span.getBeginCalendar(), Calendar.MONTH, amount * direction), Time.cloneAndAdd(span.getEndCalendar(), Calendar.MONTH, amount * direction)); }
@Override public Span getOffset(Span span, int amount, Pointer.PointerType pointer) { int direction = (pointer == Pointer.PointerType.FUTURE) ? 1 : -1; // WARN: Does not use Calendar return span.add(direction * amount * RepeaterWeek.WEEK_SECONDS); }
@Override public Span getOffset(Span span, int amount, Pointer.PointerType pointer) { int direction = (pointer == Pointer.PointerType.FUTURE) ? 1 : -1; // WARN: Does not use Calendar return span.add(direction * amount * RepeaterHour.HOUR_SECONDS); }
@Override public Span getOffset(Span span, int amount, PointerType pointer) { int direction = (pointer == PointerType.FUTURE) ? 1 : -1; Span offsetSpan = span.add(direction * amount * RepeaterFortnight.FORTNIGHT_SECONDS); return offsetSpan; }
@Override public Span getOffset(Span span, int amount, Pointer.PointerType pointer) { int direction = (pointer == Pointer.PointerType.FUTURE) ? 1 : -1; // WARN: Does not use Calendar return span.add(direction * amount * RepeaterDay.DAY_SECONDS); }
@Override public Span getOffset(Span span, int amount, Pointer.PointerType pointer) { int direction = (pointer == Pointer.PointerType.FUTURE) ? 1 : -1; // WARN: Does not use Calendar return span.add(direction * amount * RepeaterSecond.SECOND_SECONDS); }
@Override public Span getOffset(Span span, int amount, Pointer.PointerType pointer) { int direction = (pointer == Pointer.PointerType.FUTURE) ? 1 : -1; // WARN: Does not use Calendar return span.add(direction * amount * RepeaterMinute.MINUTE_SECONDS); }