public static Calendar ymdh(Calendar basis) { Calendar clone = Time.ymd(basis); clone.set(Calendar.HOUR_OF_DAY, basis.get(Calendar.HOUR_OF_DAY)); return clone; }
@Override protected Span _thisSpan(PointerType pointer) { Calendar dayBegin; Calendar dayEnd; if (pointer == PointerType.FUTURE) { dayBegin = Time.cloneAndAdd(Time.ymdh(getNow()), Calendar.HOUR, 1); dayEnd = Time.cloneAndAdd(Time.ymd(getNow()), Calendar.DAY_OF_MONTH, 1); } else if (pointer == PointerType.PAST) { dayBegin = Time.ymd(getNow()); dayEnd = Time.ymdh(getNow()); } else if (pointer == PointerType.NONE) { dayBegin = Time.ymd(getNow()); dayEnd = Time.cloneAndAdd(Time.ymdh(getNow()), Calendar.DAY_OF_MONTH, 1); } else { throw new IllegalArgumentException("Unable to handle pointer " + pointer + "."); } return new Span(dayBegin, dayEnd); }
@Override protected Span _nextSpan(PointerType pointer) { if (_currentDayStart == null) { _currentDayStart = Time.ymd(getNow()); } int direction = (pointer == Pointer.PointerType.FUTURE) ? 1 : -1; _currentDayStart.add(Calendar.DAY_OF_MONTH, direction); return new Span(_currentDayStart, Calendar.DAY_OF_MONTH, 1); }
@Override protected Span _nextSpan(PointerType pointer) { int direction = (pointer == Pointer.PointerType.FUTURE) ? 1 : -1; if (_currentDayStart == null) { _currentDayStart = Time.ymd(getNow()); _currentDayStart.add(Calendar.DAY_OF_MONTH, direction); int dayNum = getType().ordinal(); while ((_currentDayStart.get(Calendar.DAY_OF_WEEK) - 1) != dayNum) { _currentDayStart.add(Calendar.DAY_OF_MONTH, direction); } } else { _currentDayStart.add(Calendar.DAY_OF_MONTH, direction * 7); } return new Span(_currentDayStart, Calendar.DAY_OF_MONTH, 1); }
@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; }
Calendar rangeEnd; if (_currentSpan == null) { long nowSeconds = (getNow().getTimeInMillis() - Time.ymd(getNow()).getTimeInMillis()) / 1000; if (nowSeconds < _range.getBegin()) { if (pointer == Pointer.PointerType.FUTURE) { rangeStart = Time.cloneAndAdd(Time.ymd(getNow()), Calendar.SECOND, _range.getBegin()); rangeStart = Time.cloneAndAdd(Time.cloneAndAdd(Time.ymd(getNow()), Calendar.DAY_OF_MONTH, -1), Calendar.SECOND, _range.getBegin()); rangeStart = Time.cloneAndAdd(Time.cloneAndAdd(Time.ymd(getNow()), Calendar.DAY_OF_MONTH, 1), Calendar.SECOND, _range.getBegin()); rangeStart = Time.cloneAndAdd(Time.ymd(getNow()), Calendar.SECOND, _range.getBegin()); rangeStart = Time.cloneAndAdd(Time.cloneAndAdd(Time.ymd(getNow()), Calendar.DAY_OF_MONTH, 1), Calendar.SECOND, _range.getBegin()); rangeStart = Time.cloneAndAdd(Time.cloneAndAdd(Time.ymd(getNow()), Calendar.DAY_OF_MONTH, -1), Calendar.SECOND, _range.getBegin());
if (_currentTime == null) { first = true; Calendar midnight = Time.ymd(now); Calendar yesterdayMidnight = Time.cloneAndAdd(midnight, Calendar.SECOND, -fullDay); Calendar tomorrowMidnight = Time.cloneAndAdd(midnight, Calendar.SECOND, fullDay);
@Override protected Span _thisSpan(PointerType pointer) { Calendar yearStart; Calendar yearEnd; if (pointer == PointerType.FUTURE) { yearStart = Time.cloneAndAdd(Time.ymd(getNow()), Calendar.DAY_OF_MONTH, 1); yearEnd = Time.cloneAndAdd(Time.yJan1(getNow()), Calendar.YEAR, 1); } else if (pointer == PointerType.PAST) { yearStart = Time.yJan1(getNow()); yearEnd = Time.ymd(getNow()); } else if (pointer == PointerType.NONE) { yearStart = Time.yJan1(getNow()); yearEnd = Time.cloneAndAdd(Time.yJan1(getNow()), Calendar.YEAR, 1); } else { throw new IllegalArgumentException("Unable to handle pointer " + pointer + "."); } return new Span(yearStart, yearEnd); }
@Override protected Span _thisSpan(PointerType pointer) { Calendar monthStart; Calendar monthEnd; if (pointer == PointerType.FUTURE) { monthStart = Time.cloneAndAdd(Time.ymd(getNow()), Calendar.DAY_OF_MONTH, 1); monthEnd = Time.cloneAndAdd(Time.ym(getNow()), Calendar.MONTH, 1); } else if (pointer == PointerType.PAST) { monthStart = Time.ym(getNow()); monthEnd = Time.ymd(getNow()); } else if (pointer == PointerType.NONE) { monthStart = Time.ym(getNow()); monthEnd = Time.cloneAndAdd(Time.ym(getNow()), Calendar.MONTH, 1); } else { throw new IllegalArgumentException("Unable to handle pointer " + pointer + "."); } return new Span(monthStart, monthEnd); }