@Override public int numerical(Weekday dayOfWeek) { return dayOfWeek.getValue(Weekmodel.this); }
LastWeekdayPattern( Month month, Weekday dayOfWeek, PlainTime timeOfDay, OffsetIndicator indicator, int savings ) { super(month, timeOfDay, indicator, savings); this.dayOfWeek = (byte) dayOfWeek.getValue(); }
NegativeDayOfMonthPattern( Month month, int domIndicator, Weekday dayOfWeek, PlainTime timeOfDay, OffsetIndicator indicator, int savings ) { super(month, timeOfDay, indicator, savings); if (domIndicator < -28 || domIndicator > -2) { throw new IllegalArgumentException("Day-of-month-indicator out of range: " + domIndicator); } this.domIndicator = domIndicator; this.dayOfWeek = (byte) dayOfWeek.getValue(); }
/** * <p>Conversion to the {@code java.time}-equivalent. </p> * * @return DayOfWeek * @see #from(DayOfWeek) * @since 4.28 */ /*[deutsch] * <p>Konversion zum {@code java.time}-Äquivalent. </p> * * @return DayOfWeek * @see #from(DayOfWeek) * @since 4.28 */ public DayOfWeek toTemporalAccessor() { return DayOfWeek.of(this.getValue()); }
private PlainDate withDayOfWeek(Weekday dayOfWeek) { Weekday old = this.getDayOfWeek(); PlainDate date = ( (this.weekday == null) ? new PlainDate(this.year, this.month, this.dayOfMonth, old) : this); if (old == dayOfWeek) { return date; } return PlainDate.addDays(date, dayOfWeek.getValue() - old.getValue()); }
private int getFirstCalendarWeekAsDay( PlainDate date, int shift // -1 = Vorjahr/-monat, 0 = aktuell, +1 = Folgejahr/-monat ) { Weekday wd = this.getWeekdayStart(date, shift); Weekmodel model = this.owner.getModel(); int dow = wd.getValue(model); return ( (dow <= 8 - model.getMinimalDaysInFirstWeek()) ? 2 - dow : 9 - dow ); }
DayOfWeekInMonthPattern( Month month, int dayOfMonth, Weekday dayOfWeek, PlainTime timeOfDay, OffsetIndicator indicator, int savings, boolean after ) { super(month, timeOfDay, indicator, savings); GregorianMath.checkDate(2000, month.getValue(), dayOfMonth); this.dayOfMonth = (byte) dayOfMonth; this.dayOfWeek = (byte) dayOfWeek.getValue(); this.after = after; }
private void writeWeekmodel(DataOutput out) throws IOException { Weekmodel wm = (Weekmodel) this.obj; boolean isoWeekend = ( (wm.getStartOfWeekend() == Weekday.SATURDAY) && (wm.getEndOfWeekend() == Weekday.SUNDAY) ); int header = WEEKMODEL_TYPE; header <<= 4; if (!isoWeekend) { header |= 1; } out.writeByte(header); int state = wm.getFirstDayOfWeek().getValue(); state <<= 4; state |= wm.getMinimalDaysInFirstWeek(); out.writeByte(state); if (!isoWeekend) { state = wm.getStartOfWeekend().getValue(); state <<= 4; state |= wm.getEndOfWeekend().getValue(); out.writeByte(state); } }
@Override public T withValue( T context, Weekday value, boolean lenient ) { if (value == null) { throw new IllegalArgumentException("Missing weekday."); } PlainDate date = context.get(CALENDAR_DATE); long utcDays = date.getDaysSinceUTC(); Weekday current = getDayOfWeek(utcDays); if (value == current) { return context; } int old = current.getValue(this.element.getModel()); int neu = value.getValue(this.element.getModel()); date = date.withDaysSinceUTC(utcDays + neu - old); return context.with(CALENDAR_DATE, date); }
private static int getFirstCalendarWeekAsDayOfYear(int year) { Weekday wdNewYear = Weekday.valueOf(GregorianMath.getDayOfWeek(year, 1, 1)); int dow = wdNewYear.getValue(Weekmodel.ISO); return ( (dow <= 8 - Weekmodel.ISO.getMinimalDaysInFirstWeek()) ? 2 - dow : 9 - dow ); }
@Override public boolean test(GregorianDate context) { int y = context.getYear(); int m = context.getMonth(); int dom = context.getDayOfMonth(); return (GregorianMath.getDayOfWeek(y, m, dom) == this.getValue()); }
private static PlainDate setYearOfWeekdate( PlainDate date, int value ) { int dowCurrent = getFirstCalendarWeekAsDayOfYear(value); int weekOfYear = getWeekOfYear(date); int dayOfWeek = date.getDayOfWeek().getValue(Weekmodel.ISO); long unixDays = EpochDays.UNIX.transform( GregorianMath.toMJD(value, 1, 1), EpochDays.MODIFIED_JULIAN_DATE) + (dowCurrent - 1) + (weekOfYear - 1) * 7 + (dayOfWeek - 1); if (weekOfYear == 53) { int wNext = getFirstCalendarWeekAsDayOfYear(value + 1) + (GregorianMath.isLeapYear(value) ? 366 : 365); if (((wNext - dowCurrent) / 7) < 53) { unixDays -= 7; // weekOfYear = 52 } } return date.withDaysSinceUTC(unixDays - 2 * 365); }
: date.getDayOfMonth()); Weekday wd = getDayOfWeek(date.getDaysSinceUTC() - scaledDay + 1); int dow = wd.getValue(this.owner.getModel());
@Override public Weekday getMinimum(T context) { PlainDate date = context.get(CALENDAR_DATE); int oldNum = date.getDayOfWeek().getValue(this.element.getModel()); if (date.getDaysSinceEpochUTC() + 1 - oldNum < PlainDate.axis().getCalendarSystem().getMinimumSinceUTC()) { return PlainDate.MIN.getDayOfWeek(); } return this.element.getDefaultMinimum(); }
@Override public Weekday getMaximum(T context) { PlainDate date = context.get(CALENDAR_DATE); int oldNum = date.getDayOfWeek().getValue(this.element.getModel()); if (date.getDaysSinceEpochUTC() + 7 - oldNum > PlainDate.axis().getCalendarSystem().getMaximumSinceUTC()) { return PlainDate.MAX.getDayOfWeek(); } return this.element.getDefaultMaximum(); }
private <T extends ChronoEntity<T>> T doApply(T entity) { if (entity.contains(PlainDate.CALENDAR_DATE)) { PlainDate date = entity.get(PlainDate.CALENDAR_DATE); Weekday current = date.get(PlainDate.DAY_OF_WEEK); int delta = this.dayOfWeek.getValue() - current.getValue(); int dom = date.getDayOfMonth() + delta; long days; if (this.ordinal == LAST) { days = (5L - (Math.floorDiv(dom - 1, 7) + 1)) * 7 + delta; int max = GregorianMath.getLengthOfMonth(date.getYear(), date.getMonth()); if (date.getDayOfMonth() + days > max) { days -= 7; } } else { days = (this.ordinal - (Math.floorDiv(dom - 1, 7) + 1)) * 7 + delta; } date = date.plus(days, CalendarUnit.DAYS); return entity.with(PlainDate.CALENDAR_DATE, date); } else { throw new ChronoException( "Rule not found for ordinal day of week in month: " + entity); } }