protected void assemble(Fields fields) { if (getBase() == null) { super.assemble(fields); fields.era = ERA_FIELD; fields.monthOfYear = new BasicMonthOfYearDateTimeField(this, 12); fields.months = fields.monthOfYear.getDurationField(); } }
private YearInfo getYearInfo(int year) { YearInfo info = iYearInfoCache[year & CACHE_MASK]; if (info == null || info.iYear != year) { info = new YearInfo(year, calculateFirstDayOfYearMillis(year)); iYearInfoCache[year & CACHE_MASK] = info; } return info; }
int minuendYear = iChronology.getYear(minuendInstant); int minuendMonth = iChronology.getMonthOfYear(minuendInstant, minuendYear); int subtrahendYear = iChronology.getYear(subtrahendInstant); int subtrahendMonth = iChronology.getMonthOfYear(subtrahendInstant, subtrahendYear); int minuendDom = iChronology.getDayOfMonth (minuendInstant, minuendYear, minuendMonth); if (minuendDom == iChronology.getDaysInYearMonth(minuendYear, minuendMonth)) { int subtrahendDom = iChronology.getDayOfMonth (subtrahendInstant, subtrahendYear, subtrahendMonth); if (subtrahendDom > minuendDom) { subtrahendInstant = iChronology.dayOfMonth().set(subtrahendInstant, minuendDom); - iChronology.getYearMonthMillis(minuendYear, minuendMonth); long subtrahendRem = subtrahendInstant - iChronology.getYearMonthMillis(subtrahendYear, subtrahendMonth);
/** * Restricted constructor. * * @param leapMonth the month of year that leaps */ BasicMonthOfYearDateTimeField(BasicChronology chronology, int leapMonth) { super(DateTimeFieldType.monthOfYear(), chronology.getAverageMillisPerMonth()); iChronology = chronology; iMax = iChronology.getMaxMonth(); iLeapMonth = leapMonth; }
long unitMillis = getAverageMillisPerYearDividedByTwo(); long i2 = (instant >> 1) + getApproxMillisAtEpochDividedByTwo(); if (i2 < 0) { i2 = i2 - unitMillis + 1; long yearStart = getYearMillis(year); long diff = instant - yearStart; if (isLeapYear(year)) { oneYear = DateTimeConstants.MILLIS_PER_DAY * 366L; } else {
iChronology.getMinYear(), iChronology.getMaxYear()); int thisDow = iChronology.getDayOfWeek(instant); int weeksInFromYear = iChronology.getWeeksInYear( thisWeekyear ); int weeksInToYear = iChronology.getWeeksInYear( year ); int maxOutWeeks = (weeksInToYear < weeksInFromYear) ? weeksInToYear : weeksInFromYear; int setToWeek = iChronology.getWeekOfWeekyear(instant); if ( setToWeek > maxOutWeeks ) { setToWeek = maxOutWeeks; workInstant = iChronology.setYear( workInstant, year ); int currentWoyWeek = iChronology.getWeekOfWeekyear(workInstant); workInstant = iChronology.dayOfWeek().set( workInstant, thisDow );
/** * Serialization singleton */ private Object readResolve() { return iChronology.dayOfYear(); } }
/** * Serialization singleton */ private Object readResolve() { return iChronology.era(); } }
public DurationField getLeapDurationField() { return iChronology.days(); }
public int[] add(ReadablePartial partial, int fieldIndex, int[] values, int valueToAdd) { // overridden as superclass algorithm can't handle // 2004-02-29 + 48 months -> 2008-02-29 type dates if (valueToAdd == 0) { return values; } if (partial.size() > 0 && partial.getFieldType(0).equals(DateTimeFieldType.monthOfYear()) && fieldIndex == 0) { // month is largest field and being added to, such as month-day int curMonth0 = values[0] - 1; int newMonth = ((curMonth0 + (valueToAdd % 12) + 12) % 12) + 1; return set(partial, 0, values, newMonth); } if (DateTimeUtils.isContiguous(partial)) { long instant = 0L; for (int i = 0, isize = partial.size(); i < isize; i++) { instant = partial.getFieldType(i).getField(iChronology).set(instant, values[i]); } instant = add(instant, valueToAdd); return iChronology.get(partial, instant); } else { return super.add(partial, fieldIndex, values, valueToAdd); } }
/** * Serialization singleton */ private Object readResolve() { return iChronology.dayOfWeek(); } }
/** * Serialization singleton */ private Object readResolve() { return iChronology.dayOfMonth(); } }
long unitMillis = getAverageMillisPerYearDividedByTwo(); long i2 = (instant >> 1) + getApproxMillisAtEpochDividedByTwo(); if (i2 < 0) { i2 = i2 - unitMillis + 1; long yearStart = getYearMillis(year); long diff = instant - yearStart; if (isLeapYear(year)) { oneYear = DateTimeConstants.MILLIS_PER_DAY * 366L; } else {
iChronology.getMinYear(), iChronology.getMaxYear()); int thisDow = iChronology.getDayOfWeek(instant); int weeksInFromYear = iChronology.getWeeksInYear( thisWeekyear ); int weeksInToYear = iChronology.getWeeksInYear( year ); int maxOutWeeks = (weeksInToYear < weeksInFromYear) ? weeksInToYear : weeksInFromYear; int setToWeek = iChronology.getWeekOfWeekyear(instant); if ( setToWeek > maxOutWeeks ) { setToWeek = maxOutWeeks; workInstant = iChronology.setYear( workInstant, year ); int currentWoyWeek = iChronology.getWeekOfWeekyear(workInstant); workInstant = iChronology.dayOfWeek().set( workInstant, thisDow );
/** * Restricted constructor. * * @param leapMonth the month of year that leaps */ BasicMonthOfYearDateTimeField(BasicChronology chronology, int leapMonth) { super(DateTimeFieldType.monthOfYear(), chronology.getAverageMillisPerMonth()); iChronology = chronology; iMax = iChronology.getMaxMonth(); iLeapMonth = leapMonth; }
/** * Serialization singleton */ private Object readResolve() { return iChronology.dayOfYear(); } }
/** * Serialization singleton */ private Object readResolve() { return iChronology.era(); } }
public DurationField getLeapDurationField() { return iChronology.days(); }
public int[] add(ReadablePartial partial, int fieldIndex, int[] values, int valueToAdd) { // overridden as superclass algorithm can't handle // 2004-02-29 + 48 months -> 2008-02-29 type dates if (valueToAdd == 0) { return values; } if (partial.size() > 0 && partial.getFieldType(0).equals(DateTimeFieldType.monthOfYear()) && fieldIndex == 0) { // month is largest field and being added to, such as month-day int curMonth0 = values[0] - 1; int newMonth = ((curMonth0 + (valueToAdd % 12) + 12) % 12) + 1; return set(partial, 0, values, newMonth); } if (DateTimeUtils.isContiguous(partial)) { long instant = 0L; for (int i = 0, isize = partial.size(); i < isize; i++) { instant = partial.getFieldType(i).getField(iChronology).set(instant, values[i]); } instant = add(instant, valueToAdd); return iChronology.get(partial, instant); } else { return super.add(partial, fieldIndex, values, valueToAdd); } }
/** * Serialization singleton */ private Object readResolve() { return iChronology.dayOfWeek(); } }