public CalendarPeriod getTimeUnit() { return CalendarPeriod.of(1, CalendarPeriod.fromUnitString(unitString)); }
public static CalendarDuration fromUnitString(String unitString) { return new CalendarDuration(1, CalendarPeriod.fromUnitString(unitString)); }
public static CalendarDuration fromUnitString(String unitString) { return new CalendarDuration(1, CalendarPeriod.fromUnitString(unitString)); }
public CalendarPeriod getTimeUnit() { return CalendarPeriod.of(1, CalendarPeriod.fromUnitString(unitString)); }
public static CalendarDuration fromUnitString(String unitString) { return new CalendarDuration(1, CalendarPeriod.fromUnitString(unitString)); }
private CalendarDateUnit(Calendar calt, String dateUnitString) { this.cal = calt; dateUnitString = dateUnitString.trim(); dateUnitString = dateUnitString.toLowerCase(); isCalendarField = dateUnitString.startsWith(byCalendarString); if (isCalendarField) { dateUnitString = dateUnitString.substring(byCalendarString.length()).trim(); } Matcher m = udunitPattern.matcher(dateUnitString); if (!m.matches()) { //System.out.printf("'%s' does not match regexp '%s'%n", dateUnitString, udunitPatternString); throw new IllegalArgumentException(dateUnitString + " does not match " + udunitPatternString); } unitString = m.group(1); periodField = CalendarPeriod.fromUnitString(unitString); int pos = dateUnitString.indexOf("since"); String iso = dateUnitString.substring(pos + 5); baseDate = CalendarDateFormatter.isoStringToCalendarDate(cal, iso); //DateTime dt = parseUdunitsTimeString(dateUnitString, m.group(2), m.group(4), m.group(5)); //baseDate = CalendarDate.of(cal, dt); }
private CalendarDateUnit(Calendar calt, String dateUnitString) { dateUnitString = dateUnitString.trim(); // dateUnitString = dateUnitString.replaceAll("\\s+", " "); LOOK think about should we allow this ?? dateUnitString = dateUnitString.toLowerCase(); isCalendarField = dateUnitString.startsWith(byCalendarString); if (isCalendarField) { dateUnitString = dateUnitString.substring(byCalendarString.length()).trim(); } Matcher m = udunitPattern.matcher(dateUnitString); if (!m.matches()) { //System.out.printf("'%s' does not match regexp '%s'%n", dateUnitString, udunitPatternString); throw new IllegalArgumentException(dateUnitString + " does not match " + udunitPatternString); } unitString = m.group(1); periodField = CalendarPeriod.fromUnitString(unitString); int pos = dateUnitString.indexOf("since"); String iso = dateUnitString.substring(pos + 5); baseDate = CalendarDateFormatter.isoStringToCalendarDate(calt, iso); // calendar might change !! calt = baseDate.getCalendar(); this.cal = calt; }
private CalendarDateUnit(Calendar calt, String dateUnitString) { dateUnitString = dateUnitString.trim(); // dateUnitString = dateUnitString.replaceAll("\\s+", " "); LOOK think about should we allow this ?? dateUnitString = dateUnitString.toLowerCase(); isCalendarField = dateUnitString.startsWith(byCalendarString); if (isCalendarField) { dateUnitString = dateUnitString.substring(byCalendarString.length()).trim(); } Matcher m = udunitPattern.matcher(dateUnitString); if (!m.matches()) { //System.out.printf("'%s' does not match regexp '%s'%n", dateUnitString, udunitPatternString); throw new IllegalArgumentException(dateUnitString + " does not match " + udunitPatternString); } String unitString = m.group(1); period = CalendarPeriod.of(unitString); periodField = CalendarPeriod.fromUnitString(unitString); int pos = dateUnitString.indexOf("since"); String iso = dateUnitString.substring(pos + 5); baseDate = CalendarDateFormatter.isoStringToCalendarDate(calt, iso); // calendar might change !! calt = baseDate.getCalendar(); this.cal = calt; }
/** * Convert a udunit period string into a CalendarPeriod * @param udunit period string * @return CalendarPeriod or null if illegal */ public static CalendarPeriod of(String udunit) { String[] split = StringUtil2.splitString(udunit); if (split.length != 2) return null; try { int value = Integer.parseInt(split[0]); CalendarPeriod.Field unit = CalendarPeriod.fromUnitString(split[1]); return CalendarPeriod.of(value, unit); } catch (Throwable t) { return null; } }
/** * Convert a udunit period string into a CalendarPeriod * @param udunit period string : "[val] unit" * @return CalendarPeriod or null if illegal */ public static CalendarPeriod of(String udunit) { int value; String units; String[] split = StringUtil2.splitString(udunit); if (split.length == 1) { value = 1; units = split[0]; } else if (split.length == 2) { try { value = Integer.parseInt(split[0]); } catch (Throwable t) { return null; } units = split[1]; } else return null; CalendarPeriod.Field unit = CalendarPeriod.fromUnitString(units); return CalendarPeriod.of(value, unit); }
/** * Convert a udunit period string into a CalendarPeriod * @param udunit period string : "[val] unit" * @return CalendarPeriod or null if illegal */ public static CalendarPeriod of(String udunit) { int value; String units; String[] split = StringUtil2.splitString(udunit); if (split.length == 1) { value = 1; units = split[0]; } else if (split.length == 2) { try { value = Integer.parseInt(split[0]); } catch (Throwable t) { return null; } units = split[1]; } else return null; CalendarPeriod.Field unit = CalendarPeriod.fromUnitString(units); return CalendarPeriod.of(value, unit); }
public static CalendarPeriod of(TimeDuration td) { CalendarPeriod.Field unit = CalendarPeriod.fromUnitString(td.getTimeUnit().getUnitString()); return CalendarPeriod.of( (int) td.getValue(), unit); }