@Override protected ChronoLocalDate chronoLocalDateOf(final HijrahEra era, final int prolepticYear, final int month, final int dayOfMonth) { return era != null ? HijrahDate.of(prolepticYear, month, dayOfMonth) : null; }
@Override protected HijrahDate getReferenceValue(Clock reference) { return HijrahDate.now( reference ); }
@Override public HijrahDate with(TemporalField field, long newValue) { if (field instanceof ChronoField) { ChronoField f = (ChronoField) field; f.checkValidValue(newValue); // TODO: validate value int nvalue = (int) newValue; switch (f) { case DAY_OF_WEEK: return plusDays(newValue - dayOfWeek.getValue()); case ALIGNED_DAY_OF_WEEK_IN_MONTH: return plusDays(newValue - getLong(ALIGNED_DAY_OF_WEEK_IN_MONTH)); case ALIGNED_DAY_OF_WEEK_IN_YEAR: return plusDays(newValue - getLong(ALIGNED_DAY_OF_WEEK_IN_YEAR)); case DAY_OF_MONTH: return resolvePreviousValid(yearOfEra, monthOfYear, nvalue); case DAY_OF_YEAR: return resolvePreviousValid(yearOfEra, ((nvalue - 1) / 30) + 1, ((nvalue - 1) % 30) + 1); case EPOCH_DAY: return new HijrahDate(nvalue); case ALIGNED_WEEK_OF_MONTH: return plusDays((newValue - getLong(ALIGNED_WEEK_OF_MONTH)) * 7); case ALIGNED_WEEK_OF_YEAR: return plusDays((newValue - getLong(ALIGNED_WEEK_OF_YEAR)) * 7); case MONTH_OF_YEAR: return resolvePreviousValid(yearOfEra, nvalue, dayOfMonth); case YEAR_OF_ERA: return resolvePreviousValid(yearOfEra >= 1 ? nvalue : 1 - nvalue, monthOfYear, dayOfMonth); case YEAR: return resolvePreviousValid(nvalue, monthOfYear, dayOfMonth); case ERA: return resolvePreviousValid(1 - yearOfEra, monthOfYear, dayOfMonth); } throw new UnsupportedTemporalTypeException("Unsupported field: " + field); } return field.adjustInto(this, newValue); }
private static HijrahDate resolvePreviousValid(int yearOfEra, int month, int day) { int monthDays = getMonthDays(month - 1, yearOfEra); if (day > monthDays) { day = monthDays; } return HijrahDate.of(yearOfEra, month, day); }
/** * Constructs an instance with the specified date. * * @param gregorianDay the number of days from 0001/01/01 (Gregorian), caller calculated */ private HijrahDate(long gregorianDay) { int[] dateInfo = getHijrahDateInfo(gregorianDay); checkValidYearOfEra(dateInfo[1]); checkValidMonth(dateInfo[2]); checkValidDayOfMonth(dateInfo[3]); checkValidDayOfYear(dateInfo[4]); this.era = HijrahEra.of(dateInfo[0]); this.yearOfEra = dateInfo[1]; this.monthOfYear = dateInfo[2]; this.dayOfMonth = dateInfo[3]; this.dayOfYear = dateInfo[4]; this.dayOfWeek = DayOfWeek.of(dateInfo[5]); this.gregorianEpochDay = gregorianDay; this.isLeapYear = isLeapYear(this.yearOfEra); }
/** * Obtains an instance of {@code HijrahDate} from the era, year-of-era * month-of-year and day-of-month. * * @param era the era to represent, not null * @param yearOfEra the year-of-era to represent, from 1 to 9999 * @param monthOfYear the month-of-year to represent, from 1 to 12 * @param dayOfMonth the day-of-month to represent, from 1 to 31 * @return the Hijrah date, never null * @throws IllegalCalendarFieldValueException if the value of any field is out of range * @throws InvalidCalendarFieldException if the day-of-month is invalid for the month-year */ static HijrahDate of(HijrahEra era, int yearOfEra, int monthOfYear, int dayOfMonth) { Jdk8Methods.requireNonNull(era, "era"); checkValidYearOfEra(yearOfEra); checkValidMonth(monthOfYear); checkValidDayOfMonth(dayOfMonth); long gregorianDays = getGregorianEpochDay(era.prolepticYear(yearOfEra), monthOfYear, dayOfMonth); return new HijrahDate(gregorianDays); }
public static HijrahDate from(TemporalAccessor temporal) { return HijrahDate.from(temporal); }
/** * Replaces the date instance from the stream with a valid one. * * @return the resolved date, never null */ private Object readResolve() { return new HijrahDate(this.gregorianEpochDay); }
addDeviationAsHijrah(startYear, startMonth, endYear, endMonth, offset); } else {
@Override protected HijrahDate getReferenceValue(Clock reference) { return HijrahDate.now( reference ); }
public PastDummyEntity(ZonedDateTime dateTime) { calendar = GregorianCalendar.from( dateTime ); date = calendar.getTime(); instant = dateTime.toInstant(); localDateTime = dateTime.toLocalDateTime(); hijrahDate = HijrahDate.from( dateTime ); japaneseDate = JapaneseDate.from( dateTime ); localDate = LocalDate.from( dateTime ); minguoDate = MinguoDate.from( dateTime ); offsetDateTime = dateTime.toOffsetDateTime(); thaiBuddhistDate = ThaiBuddhistDate.from( dateTime ); year = Year.from( dateTime ); yearMonth = YearMonth.from( dateTime ); zonedDateTime = dateTime; } }
@Override HijrahDate plusDays(long days) { return new HijrahDate(this.gregorianEpochDay + days); }
@Override protected ChronoLocalDate chronoLocalDateOf(final HijrahEra era, final int prolepticYear, final int month, final int dayOfMonth) { return era != null ? HijrahDate.of(prolepticYear, month, dayOfMonth) : null; }
@Override protected HijrahDate getReferenceValue(Clock reference) { return HijrahDate.now( reference ); }
public FutureOrPresentDummyEntity(ZonedDateTime dateTime) { calendar = GregorianCalendar.from( dateTime ); date = calendar.getTime(); instant = dateTime.toInstant(); localDateTime = dateTime.toLocalDateTime(); hijrahDate = HijrahDate.from( dateTime ); japaneseDate = JapaneseDate.from( dateTime ); localDate = LocalDate.from( dateTime ); minguoDate = MinguoDate.from( dateTime ); offsetDateTime = dateTime.toOffsetDateTime(); thaiBuddhistDate = ThaiBuddhistDate.from( dateTime ); year = Year.from( dateTime ); yearMonth = YearMonth.from( dateTime ); zonedDateTime = dateTime; } }
static HijrahDate ofEpochDay(long epochDay) { return new HijrahDate(epochDay); }
@Override protected ChronoLocalDate chronoLocalDateOf(final HijrahEra era, final int prolepticYear, final int month, final int dayOfMonth) { return era != null ? HijrahDate.of(prolepticYear, month, dayOfMonth) : null; }
@Override protected HijrahDate getReferenceValue(Clock reference) { return HijrahDate.now( reference ); }
public PastOrPresentDummyEntity(ZonedDateTime dateTime) { calendar = GregorianCalendar.from( dateTime ); date = calendar.getTime(); instant = dateTime.toInstant(); localDateTime = dateTime.toLocalDateTime(); hijrahDate = HijrahDate.from( dateTime ); japaneseDate = JapaneseDate.from( dateTime ); localDate = LocalDate.from( dateTime ); minguoDate = MinguoDate.from( dateTime ); offsetDateTime = dateTime.toOffsetDateTime(); thaiBuddhistDate = ThaiBuddhistDate.from( dateTime ); year = Year.from( dateTime ); yearMonth = YearMonth.from( dateTime ); zonedDateTime = dateTime; } }