@Override public PartialTime reduceGranularityTo(Duration granularity) { Partial pbase = base; if (JodaTimeUtils.hasField(granularity.getJodaTimePeriod(), DurationFieldType.weeks())) { // Make sure the partial time has weeks in it if (!JodaTimeUtils.hasField(pbase, DateTimeFieldType.weekOfWeekyear())) { // Add week year to it pbase = JodaTimeUtils.resolveWeek(pbase); } } Partial p = JodaTimeUtils.discardMoreSpecificFields( pbase, JodaTimeUtils.getMostSpecific(granularity.getJodaTimePeriod()) ); return new PartialTime(this,p); }
public static boolean isCompatible(Partial p1, Partial p2) { if (p1 == null) return true; if (p2 == null) return true; for (int i = 0; i < p1.size(); i++) { DateTimeFieldType type = p1.getFieldType(i); int v = p1.getValue(i); if (JodaTimeUtils.hasField(p2,type)) { if (v != p2.get(type)) { return false; } } } return true; } // Uses p2 to resolve dow for p1
if (JodaTimeUtils.hasField(base, DateTimeFieldType.era())) { int era = base.get(DateTimeFieldType.era()); if (era == 0) { if (JodaTimeUtils.hasField(base, DateTimeFieldType.centuryOfEra()) || JodaTimeUtils.hasField(base, JodaTimeUtils.DecadeOfCentury) || JodaTimeUtils.hasField(base, DateTimeFieldType.yearOfCentury())) { if (JodaTimeUtils.hasField(base, DateTimeFieldType.centuryOfEra())) { builder.appendCenturyOfEra(2, 2); } else { builder.appendLiteral(PAD_FIELD_UNKNOWN2); if (JodaTimeUtils.hasField(base, JodaTimeUtils.DecadeOfCentury)) { builder.appendDecimal(JodaTimeUtils.DecadeOfCentury, 1, 1); builder.appendLiteral(PAD_FIELD_UNKNOWN); } else if (JodaTimeUtils.hasField(base, DateTimeFieldType.yearOfCentury())) { builder.appendYearOfCentury(2, 2); } else { builder.appendLiteral(PAD_FIELD_UNKNOWN2); } else if (JodaTimeUtils.hasField(base, DateTimeFieldType.year())) { builder.appendYear(4, 4); } else if (JodaTimeUtils.hasField(base, DateTimeFieldType.weekyear())) { builder.appendWeekyear(4, 4); } else { boolean appendWeekDay = false; if (isISO || isTimex3) { if (JodaTimeUtils.hasField(base, DateTimeFieldType.monthOfYear()) && JodaTimeUtils.hasField(base, DateTimeFieldType.dayOfMonth())) { appendMonthDay = true;
@Override public SUTime.Time resolve(SUTime.Time t, int flags) { Partial p = (t != null)? t.getJodaTimePartial():null; if (p != null) { if (JodaTimeUtils.hasField(p, DateTimeFieldType.year())) { int year = p.get(DateTimeFieldType.year()); SUTime.Time resolved = resolveWithYear(year); if (resolved != null) { return resolved; } } } return this; }
Time t = p; if (unsupported != null) { if (/*unsupported.size() == 1 && */JodaTimeUtils.hasField(unsupported, DurationFieldType.weeks()) && JodaTimeUtils.hasField(p.base, DateTimeFieldType.year()) && JodaTimeUtils.hasField(p.base, DateTimeFieldType.monthOfYear()) && JodaTimeUtils.hasField(p.base, DateTimeFieldType.dayOfMonth())) { if (JodaTimeUtils.hasField(unsupported, DurationFieldType.months()) && unsupported.getMonths() % 3 == 0 && JodaTimeUtils.hasField(p.base, JodaTimeUtils.QuarterOfYear)) { Partial p2 = p.base.withFieldAddWrapped(JodaTimeUtils.Quarters, unsupported.getMonths() / 3); p = new PartialTime(p, p2); unsupported = unsupported.withMonths(0); if (JodaTimeUtils.hasField(unsupported, DurationFieldType.months()) && unsupported.getMonths() % 6 == 0 && JodaTimeUtils.hasField(p.base, JodaTimeUtils.HalfYearOfYear)) { Partial p2 = p.base.withFieldAddWrapped(JodaTimeUtils.HalfYears, unsupported.getMonths() / 6); p = new PartialTime(p, p2); unsupported = unsupported.withMonths(0); if (JodaTimeUtils.hasField(unsupported, DurationFieldType.years()) && unsupported.getYears() % 10 == 0 && JodaTimeUtils.hasField(p.base, JodaTimeUtils.DecadeOfCentury)) { Partial p2 = p.base.withFieldAddWrapped(JodaTimeUtils.Decades, unsupported.getYears() / 10); p = new PartialTime(p, p2); unsupported = unsupported.withYears(0); if (JodaTimeUtils.hasField(unsupported, DurationFieldType.years()) && unsupported.getYears() % 100 == 0 && JodaTimeUtils.hasField(p.base, DateTimeFieldType.centuryOfEra())) { Partial p2 = p.base.withField(DateTimeFieldType.centuryOfEra(), p.base.get(DateTimeFieldType.centuryOfEra()) + unsupported.getYears() / 100); p = new PartialTime(p, p2);
if (hasTime) { builder.appendLiteral("T"); if (JodaTimeUtils.hasField(base, DateTimeFieldType.hourOfDay())) { builder.appendHourOfDay(2); } else if (JodaTimeUtils.hasField(base, DateTimeFieldType.clockhourOfDay())) { builder.appendClockhourOfDay(2); } else { builder.appendLiteral(PAD_FIELD_UNKNOWN2); if (JodaTimeUtils.hasField(base, DateTimeFieldType.minuteOfHour())) { builder.appendLiteral(":"); builder.appendMinuteOfHour(2); builder.appendLiteral(PAD_FIELD_UNKNOWN2); if (JodaTimeUtils.hasField(base, DateTimeFieldType.secondOfMinute())) { builder.appendLiteral(":"); builder.appendSecondOfMinute(2); builder.appendLiteral(PAD_FIELD_UNKNOWN2); if (JodaTimeUtils.hasField(base, DateTimeFieldType.millisOfSecond())) { builder.appendLiteral("."); builder.appendMillisOfSecond(3);
boolean hasDate = appendDateFormats(builder, flags); if (poy != null) { if (!JodaTimeUtils.hasField(base, DateTimeFieldType.monthOfYear())) { if (!JodaTimeUtils.hasField(base, DateTimeFieldType.monthOfYear()) && !JodaTimeUtils.hasField(base, DateTimeFieldType.dayOfWeek())) { builder.appendLiteral("-"); builder.appendLiteral(dow.toISOString());
public List<Temporal> toList() { if (JodaTimeUtils.hasField(base, DateTimeFieldType.year()) && JodaTimeUtils.hasField(base, DateTimeFieldType.monthOfYear()) && JodaTimeUtils.hasField(base, DateTimeFieldType.dayOfWeek())) { List<Temporal> list = new ArrayList<>(); Partial pt = new Partial(); pt = JodaTimeUtils.setField(pt, DateTimeFieldType.year(), base.get(DateTimeFieldType.year())); pt = JodaTimeUtils.setField(pt, DateTimeFieldType.monthOfYear(), base.get(DateTimeFieldType.monthOfYear())); pt = JodaTimeUtils.setField(pt, DateTimeFieldType.dayOfMonth(), 1); Partial candidate = JodaTimeUtils.resolveDowToDay(base, pt); if (candidate.get(DateTimeFieldType.monthOfYear()) != base.get(DateTimeFieldType.monthOfYear())) { pt = JodaTimeUtils.setField(pt, DateTimeFieldType.dayOfMonth(), 8); candidate = JodaTimeUtils.resolveDowToDay(base, pt); if (candidate.get(DateTimeFieldType.monthOfYear()) != base.get(DateTimeFieldType.monthOfYear())) { // give up return null; } } try { while (candidate.get(DateTimeFieldType.monthOfYear()) == base.get(DateTimeFieldType.monthOfYear())) { list.add(new PartialTime(this, candidate)); pt = JodaTimeUtils.setField(pt, DateTimeFieldType.dayOfMonth(), pt.get(DateTimeFieldType.dayOfMonth()) + 7); candidate = JodaTimeUtils.resolveDowToDay(base, pt); } } catch (IllegalFieldValueException ex) {} return list; } else { return null; } }
public PartialTime reduceGranularityTo(Duration granularity) { Partial pbase = base; if (JodaTimeUtils.hasField(granularity.getJodaTimePeriod(), DurationFieldType.weeks())) { // Make sure the partial time has weeks in it if (!JodaTimeUtils.hasField(pbase, DateTimeFieldType.weekOfWeekyear())) { // Add week year to it pbase = JodaTimeUtils.resolveWeek(pbase); } } Partial p = JodaTimeUtils.discardMoreSpecificFields( pbase, JodaTimeUtils.getMostSpecific(granularity.getJodaTimePeriod()) ); return new PartialTime(this,p); }
@Override public PartialTime reduceGranularityTo(Duration granularity) { Partial pbase = base; if (JodaTimeUtils.hasField(granularity.getJodaTimePeriod(), DurationFieldType.weeks())) { // Make sure the partial time has weeks in it if (!JodaTimeUtils.hasField(pbase, DateTimeFieldType.weekOfWeekyear())) { // Add week year to it pbase = JodaTimeUtils.resolveWeek(pbase); } } Partial p = JodaTimeUtils.discardMoreSpecificFields( pbase, JodaTimeUtils.getMostSpecific(granularity.getJodaTimePeriod()) ); return new PartialTime(this,p); }
public static boolean isCompatible(Partial p1, Partial p2) { if (p1 == null) return true; if (p2 == null) return true; for (int i = 0; i < p1.size(); i++) { DateTimeFieldType type = p1.getFieldType(i); int v = p1.getValue(i); if (JodaTimeUtils.hasField(p2,type)) { if (v != p2.get(type)) { return false; } } } return true; } // Uses p2 to resolve dow for p1
public static boolean isCompatible(Partial p1, Partial p2) { if (p1 == null) return true; if (p2 == null) return true; for (int i = 0; i < p1.size(); i++) { DateTimeFieldType type = p1.getFieldType(i); int v = p1.getValue(i); if (JodaTimeUtils.hasField(p2,type)) { if (v != p2.get(type)) { return false; } } } return true; } // Uses p2 to resolve dow for p1
public static boolean isCompatible(Partial p1, Partial p2) { if (p1 == null) return true; if (p2 == null) return true; for (int i = 0; i < p1.size(); i++) { DateTimeFieldType type = p1.getFieldType(i); int v = p1.getValue(i); if (JodaTimeUtils.hasField(p2,type)) { if (v != p2.get(type)) { return false; } } } return true; } // Uses p2 to resolve dow for p1
@Override public SUTime.Time resolve(SUTime.Time t, int flags) { Partial p = (t != null)? t.getJodaTimePartial():null; if (p != null) { if (JodaTimeUtils.hasField(p, DateTimeFieldType.year())) { int year = p.get(DateTimeFieldType.year()); SUTime.Time resolved = resolveWithYear(year); if (resolved != null) { return resolved; } } } return this; }
@Override public SUTime.Time resolve(SUTime.Time t, int flags) { Partial p = (t != null)? t.getJodaTimePartial():null; if (p != null) { if (JodaTimeUtils.hasField(p, DateTimeFieldType.year())) { int year = p.get(DateTimeFieldType.year()); // TODO: If we knew location of article, can use that information to resolve holidays better Set<de.jollyday.Holiday> holidays = holidayManager.getHolidays(year); // Try to find this holiday for (de.jollyday.Holiday h:holidays) { if (h.getPropertiesKey().equals(base.getDescriptionPropertiesKey())) { return new SUTime.PartialTime(this, new Partial(h.getDate())); } } } } return this; }
if (hasTime) { builder.appendLiteral("T"); if (JodaTimeUtils.hasField(base, DateTimeFieldType.hourOfDay())) { builder.appendHourOfDay(2); } else { builder.appendLiteral(PAD_FIELD_UNKNOWN2); if (JodaTimeUtils.hasField(base, DateTimeFieldType.minuteOfHour())) { builder.appendLiteral(":"); builder.appendMinuteOfHour(2); builder.appendLiteral(PAD_FIELD_UNKNOWN2); if (JodaTimeUtils.hasField(base, DateTimeFieldType.secondOfMinute())) { builder.appendLiteral(":"); builder.appendSecondOfMinute(2); builder.appendLiteral(PAD_FIELD_UNKNOWN2); if (JodaTimeUtils.hasField(base, DateTimeFieldType.millisOfSecond())) { builder.appendLiteral("."); builder.appendMillisOfSecond(3);
boolean hasDate = appendDateFormats(builder, flags); if (poy != null) { if (!JodaTimeUtils.hasField(base, DateTimeFieldType.monthOfYear())) { if (!JodaTimeUtils.hasField(base, DateTimeFieldType.monthOfYear()) && !JodaTimeUtils.hasField(base, DateTimeFieldType.dayOfWeek())) { builder.appendLiteral("-"); builder.appendLiteral(dow.toISOString());
boolean hasDate = appendDateFormats(builder, flags); if (poy != null) { if (!JodaTimeUtils.hasField(base, DateTimeFieldType.monthOfYear())) { if (!JodaTimeUtils.hasField(base, DateTimeFieldType.monthOfYear()) && !JodaTimeUtils.hasField(base, DateTimeFieldType.dayOfWeek())) { builder.appendLiteral("-"); builder.appendLiteral(dow.toISOString());
public List<Temporal> toList() { if (JodaTimeUtils.hasField(base, DateTimeFieldType.year()) && JodaTimeUtils.hasField(base, DateTimeFieldType.monthOfYear()) && JodaTimeUtils.hasField(base, DateTimeFieldType.dayOfWeek())) { List<Temporal> list = new ArrayList<>(); Partial pt = new Partial(); pt = JodaTimeUtils.setField(pt, DateTimeFieldType.year(), base.get(DateTimeFieldType.year())); pt = JodaTimeUtils.setField(pt, DateTimeFieldType.monthOfYear(), base.get(DateTimeFieldType.monthOfYear())); pt = JodaTimeUtils.setField(pt, DateTimeFieldType.dayOfMonth(), 1); Partial candidate = JodaTimeUtils.resolveDowToDay(base, pt); if (candidate.get(DateTimeFieldType.monthOfYear()) != base.get(DateTimeFieldType.monthOfYear())) { pt = JodaTimeUtils.setField(pt, DateTimeFieldType.dayOfMonth(), 8); candidate = JodaTimeUtils.resolveDowToDay(base, pt); if (candidate.get(DateTimeFieldType.monthOfYear()) != base.get(DateTimeFieldType.monthOfYear())) { // give up return null; } } try { while (candidate.get(DateTimeFieldType.monthOfYear()) == base.get(DateTimeFieldType.monthOfYear())) { list.add(new PartialTime(this, candidate)); pt = JodaTimeUtils.setField(pt, DateTimeFieldType.dayOfMonth(), pt.get(DateTimeFieldType.dayOfMonth()) + 7); candidate = JodaTimeUtils.resolveDowToDay(base, pt); } } catch (IllegalFieldValueException ex) {} return list; } else { return null; } }
public List<Temporal> toList() { if (JodaTimeUtils.hasField(base, DateTimeFieldType.year()) && JodaTimeUtils.hasField(base, DateTimeFieldType.monthOfYear()) && JodaTimeUtils.hasField(base, DateTimeFieldType.dayOfWeek())) { List<Temporal> list = new ArrayList<Temporal>(); Partial pt = new Partial(); pt = JodaTimeUtils.setField(pt, DateTimeFieldType.year(), base.get(DateTimeFieldType.year())); pt = JodaTimeUtils.setField(pt, DateTimeFieldType.monthOfYear(), base.get(DateTimeFieldType.monthOfYear())); pt = JodaTimeUtils.setField(pt, DateTimeFieldType.dayOfMonth(), 1); Partial candidate = JodaTimeUtils.resolveDowToDay(base, pt); if (candidate.get(DateTimeFieldType.monthOfYear()) != base.get(DateTimeFieldType.monthOfYear())) { pt = JodaTimeUtils.setField(pt, DateTimeFieldType.dayOfMonth(), 8); candidate = JodaTimeUtils.resolveDowToDay(base, pt); if (candidate.get(DateTimeFieldType.monthOfYear()) != base.get(DateTimeFieldType.monthOfYear())) { // give up return null; } } try { while (candidate.get(DateTimeFieldType.monthOfYear()) == base.get(DateTimeFieldType.monthOfYear())) { list.add(new PartialTime(this, candidate)); pt = JodaTimeUtils.setField(pt, DateTimeFieldType.dayOfMonth(), pt.get(DateTimeFieldType.dayOfMonth()) + 7); candidate = JodaTimeUtils.resolveDowToDay(base, pt); } } catch (IllegalFieldValueException ex) {} return list; } else { return null; } }