@Override public boolean isAfter(PlainDate temporal) { return (temporal.getYear() < this.year); }
@Override public int getYear() { return this.date.getYear(); }
@Override public boolean contains(PlainDate temporal) { return (temporal.getYear() == this.year); }
@Override public boolean isBefore(PlainDate temporal) { return (temporal.getYear() > this.year); }
private static int getFirstCalendarWeekAsDayOfYear( PlainDate date, int shift // -1 = Vorjahr, 0 = aktuelles Jahr, +1 = Folgejahr ) { return getFirstCalendarWeekAsDayOfYear(date.getYear() + shift); }
private static int getLengthOfYear( PlainDate date, int shift // -1 = Vorjahr, 0 = aktuelles Jahr, +1 = Folgejahr ) { return ( GregorianMath.isLeapYear(date.getYear() + shift) ? 366 : 365 ); }
@Override public PlainDate next() { if (this.current == null) { throw new NoSuchElementException(); } else { PlainDate result = this.current; PlainDate next = result.plus(1, CalendarUnit.DAYS); this.current = ((next.getYear() == CalendarYear.this.year) ? next : null); return result; } }
@Override public boolean contains(PlainDate temporal) { return ((temporal.getYear() == this.year) && (temporal.get(QUARTER_OF_YEAR) == this.quarter)); }
@Override public LocalDate from(PlainDate date) { return LocalDate.of(date.getYear(), date.getMonth(), date.getDayOfMonth()); }
@Override public boolean contains(PlainDate temporal) { return ((temporal.getYear() == this.year) && (temporal.getMonth() == this.month.getValue())); }
private int getLengthOfYM( PlainDate date, int shift // -1 = Vorjahr/-monat, 0 = aktuell, +1 = Folgejahr/-monat ) { if (this.owner.isYearRelated()) { return ( GregorianMath.isLeapYear(date.getYear() + shift) ? 366 : 365 ); } else { int year = date.getYear(); int month = date.getMonth() + shift; if (month == 0) { month = 12; year--; } else if (month == 13) { month = 1; year++; } return GregorianMath.getLengthOfMonth(year, month); } }
@Override public int getInt(T context) { PlainDate date = context.get(CALENDAR_DATE); int year = date.getYear(); int dayOfYear = date.getDayOfYear(); int wCurrent = getFirstCalendarWeekAsDayOfYear(date, 0); if (wCurrent <= dayOfYear) { if ( (((dayOfYear - wCurrent) / 7) + 1 >= 53) && (getFirstCalendarWeekAsDayOfYear(date, 1) + getLengthOfYear(date, 0) <= dayOfYear) ) { year++; } } else { year--; } return year; }
/** * <p>Converts given gregorian date to a calendar year. </p> * * @param date gregorian calendar date (for example {@code PlainDate} * @return CalendarYear * @throws IllegalArgumentException if given date is invalid * @since 3.28/4.24 */ /*[deutsch] * <p>Konvertiert das angegebene gregorianische Datum zu einem Kalenderjahr. </p> * * @param date gregorian calendar date (for example {@code PlainDate} * @return CalendarYear * @throws IllegalArgumentException if given date is invalid * @since 3.28/4.24 */ public static CalendarYear from(GregorianDate date) { PlainDate iso = PlainDate.from(date); // includes validation return CalendarYear.of(iso.getYear()); }
private Weekday getWeekdayStart( PlainDate date, int shift // -1 = Vorjahr/-monat, 0 = aktuell, +1 = Folgejahr/-monat ) { if (this.owner.isYearRelated()) { return Weekday.valueOf( GregorianMath.getDayOfWeek(date.getYear() + shift, 1, 1)); } else { int year = date.getYear(); int month = date.getMonth() + shift; if (month == 0) { month = 12; year--; } else if (month == 13) { month = 1; year++; } else if (month == 14) { month = 2; year++; } return Weekday.valueOf( GregorianMath.getDayOfWeek(year, month, 1)); } }
/** * <p>Converts given gregorian date to a calendar month. </p> * * @param date gregorian calendar date (for example {@code PlainDate} * @return CalendarMonth * @throws IllegalArgumentException if given date is invalid * @since 3.28/4.24 */ /*[deutsch] * <p>Konvertiert das angegebene gregorianische Datum zu einem Kalendermonat. </p> * * @param date gregorian calendar date (for example {@code PlainDate} * @return CalendarMonth * @throws IllegalArgumentException if given date is invalid * @since 3.28/4.24 */ public static CalendarMonth from(GregorianDate date) { PlainDate iso = PlainDate.from(date); // includes validation return CalendarMonth.of(iso.getYear(), iso.getMonth()); }
@Override public java.sql.Date from(PlainDate date) { int year = date.getYear(); if ((year < 1900) || (year > 9999)) { throw new ChronoException( "SQL-Date is only defined in year range of 1900-9999."); } long millis = // localMillis MathUtils.safeMultiply( date.get(EpochDays.UNIX), 86400 * 1000); if (!WITH_SQL_UTC_CONVERSION) { ZonalOffset offset = Timezone.ofSystem().getOffset(date, PlainTime.of(0)); millis -= offset.getIntegralAmount() * 1000; } return new java.sql.Date(millis); }
@Override public CalendarQuarter createFrom( TimeSource<?> clock, AttributeQuery attributes ) { Timezone zone; if (attributes.contains(Attributes.TIMEZONE_ID)) { zone = Timezone.of(attributes.get(Attributes.TIMEZONE_ID)); } else if (attributes.get(Attributes.LENIENCY, Leniency.SMART).isLax()) { zone = Timezone.ofSystem(); } else { return null; } PlainDate date = Moment.from(clock.currentTime()).toZonalTimestamp(zone.getID()).toDate(); return CalendarQuarter.of(date.getYear(), date.get(QUARTER_OF_YEAR)); }
@Override public CalendarMonth createFrom( TimeSource<?> clock, AttributeQuery attributes ) { Timezone zone; if (attributes.contains(Attributes.TIMEZONE_ID)) { zone = Timezone.of(attributes.get(Attributes.TIMEZONE_ID)); } else if (attributes.get(Attributes.LENIENCY, Leniency.SMART).isLax()) { zone = Timezone.ofSystem(); } else { return null; } PlainDate date = Moment.from(clock.currentTime()).toZonalTimestamp(zone.getID()).toDate(); return CalendarMonth.of(date.getYear(), Month.valueOf(date.getMonth())); }