/// <summary> /// Converts a Parquet Interval data type value to a DvTimeSpan data type value. /// </summary> /// <param name="src">Parquet Interval value (int : months, int : days, int : milliseconds).</param> /// <param name="dst">DvTimeSpan object.</param> public void Conv(ref Interval src, ref DvTimeSpan dst) { try { dst = new DvTimeSpan(TimeSpan.FromDays(src.Months * 30 + src.Days) + TimeSpan.FromMilliseconds(src.Millis)); } catch (Exception ex) { // Handle TimeSpan OverflowException _ch.Error("Cannot convert Inteval to DvTimeSpan. Exception : '{0}'", ex.Message); dst = DvTimeSpan.NA; } }
/// <summary> /// Constructs a DvDateTimeZone from a clock date-time and a time zone offset from UTC. /// </summary> /// <param name="dt">The clock time</param> /// <param name="offset">The offset</param> public DvDateTimeZone(DvDateTime dt, DvTimeSpan offset) { if (dt.IsNA || offset.IsNA || !TryValidateOffset(offset.Ticks, out _offset)) { _dateTime = DvDateTime.NA; _offset = DvInt2.NA; } else { _dateTime = ValidateDate(dt, ref _offset); } AssertValid(); }