private static bool parseDate(StringCharacterIterator iter, Datetime datetime) { short num = (short)DatetimeIso8601Util.parseUnsigned(iter, 2147483647); if (iter.current() != '-') { return(false); } iter.next(); short num2 = (short)DatetimeIso8601Util.parseUnsigned(iter, 2147483647); if (iter.current() != '-') { return(false); } iter.next(); short num3 = (short)DatetimeIso8601Util.parseUnsigned(iter, 2147483647); if (num != 1 || num2 != 1 || num3 != 1) { datetime.Year = (int)num; datetime.Month = (int)num2; datetime.DayOfMonth = (int)num3; } return(true); }
private static long parseUnsignedFixedWidth(StringCharacterIterator iter, int limit) { long num = 0L; int i = 0; char c = iter.current(); while (c != '') { if (i >= limit) { break; } if (!char.IsDigit(c)) { break; } num = num * 10L + (long)((ulong)c) - 48L; c = iter.next(); i++; } while (i < limit) { num *= 10L; i++; } return(num); }
private static int parseUnsigned(StringCharacterIterator iter, int limit) { int num = 0; int num2 = 0; char c = iter.current(); while (c != '' && num2 < limit && char.IsDigit(c)) { num = num * 10 + (int)c - 48; c = iter.next(); num2++; } return(num); }
private static bool parseTime(StringCharacterIterator iter, Datetime time) { short num = (short)DatetimeIso8601Util.parseUnsigned(iter, 2147483647); if (iter.current() != ':') { return(false); } iter.next(); short num2 = (short)DatetimeIso8601Util.parseUnsigned(iter, 2147483647); if (iter.current() != ':') { return(false); } iter.next(); short num3 = (short)DatetimeIso8601Util.parseUnsigned(iter, 2147483647); long num4 = 0L; if (iter.current() == '.') { iter.next(); num4 = DatetimeIso8601Util.parseUnsignedFixedWidth(iter, 12); char c = iter.current(); while (c != '' && char.IsDigit(c)) { c = iter.next(); } } if (num != 24 || num2 != 0 || num3 != 0 || num4 != 0L) { time.Hour = (int)num; time.Minute = (int)num2; time.Second = (int)num3; time.PicoSecond = num4; } return(true); }
private static bool parseTimezoneOffset(StringCharacterIterator iter, Datetime datetime) { short num; if (iter.current() == '+') { num = 1; } else { if (iter.current() == '-') { num = -1; } else { if (iter.current() == 'Z' || iter.current() == 'z') { datetime.TimezoneOffsetMinutes = 0; return(true); } return(false); } } iter.next(); short num2 = (short)DatetimeIso8601Util.parseUnsigned(iter, 2147483647); if (iter.current() != ':') { return(false); } iter.next(); short num3 = (short)DatetimeIso8601Util.parseUnsigned(iter, 2147483647); datetime.TimezoneOffsetMinutes = (int)(num * (num2 * 60 + num3)); return(true); }
public static bool parseTime(string strTime, Datetime time) { StringCharacterIterator iter = new StringCharacterIterator(strTime); return(DatetimeIso8601Util.parseTime(iter, time)); }
public static bool parseDateTz(string strDate, Datetime date) { StringCharacterIterator iter = new StringCharacterIterator(strDate); return(DatetimeIso8601Util.parseDateTz(iter, date)); }
private static bool parseTimeTz(StringCharacterIterator iter, Datetime timeTz) { return (DatetimeIso8601Util.parseTime(iter, timeTz) && (iter.current() == '' || DatetimeIso8601Util.parseTimezoneOffset(iter, timeTz))); }