@Override public Weekday getMinimum(SpanOfWeekdays context) { if (this.symbol == 'S') { return context.end.next(); } else { return context.start; } }
/** * <p>Ermittelt die Anzahl der Tage, die zu dieser Wochentagsspanne gehören. </p> * * @return count of days in range {@code 1-7} */ public int length() { int days = 1; Weekday current = this.start; while (current != this.end) { days++; current = current.next(); } return days; }
@Override public Iterator<Weekday> iterator() { List<Weekday> days = new ArrayList<>(7); days.add(this.start); Weekday current = this.start; while (current != this.end) { current = current.next(); days.add(current); } return days.iterator(); }
/** * <p>Gets the first working day as first day after end of weekend. </p> * * <p>Note: The last working day of week is not well defined however * and needs to be defined by the application itself. For example * Saturday is considered as start of weekend but also handled as legal * working day in most countries. </p> * * @return first day after weekend */ /*[deutsch] * <p>Ermittelt den ersten Arbeitstag als den Tag nach dem Ende des * Wochenendes. </p> * * <p>Hinweis: Der letzte Arbeitstag der Woche als Gegenstück * zu dieser Methode ist in der Regel nicht eindeutig und daher von * Anwendungen selbst festzulegen. Zum Beispiel gilt in vielen Ländern * der Samstag zwar als der Start des Wochenendes, wird aber trotzdem * gesetzlich als Werktag behandelt. </p> * * @return first day after weekend */ public Weekday getFirstWorkday() { return this.getEndOfWeekend().next(); }
wd = wd.next();
} while (!(current = current.next()).equals(to));
private static PlainDate addDays( PlainDate date, long amount ) { long dom = MathUtils.safeAdd(date.dayOfMonth, amount); Weekday weekday = null; boolean hasDOW = (date.weekday != null); if (hasDOW) { if (amount == 1) { weekday = date.weekday.next(); } else if (amount == 7) { weekday = date.weekday; } } if ((dom >= 1) && (dom <= 28)) { if (hasDOW && (weekday == null)) { weekday = date.weekday.roll((int) amount); } return PlainDate.create(date.year, date.month, (int) dom, weekday, false); } long doy = MathUtils.safeAdd(date.getDayOfYear(), amount); if ((doy >= 1) && (doy <= 365)) { if (hasDOW && (weekday == null)) { weekday = date.weekday.roll((int) amount); } return PlainDate.ofYearDay(date.year, (int) doy, weekday); } return TRANSFORMER.transform(MathUtils.safeAdd(date.getDaysSinceUTC(), amount)); }