/// <summary> /// Compare this object with another for equality. /// </summary> /// <param name="o"> /// Another object to compare to for equality. /// </param> /// <returns> /// <b>true</b> iff this object is equal to the other object. /// </returns> public override bool Equals(object o) { if (o is RawDateTime) { RawDateTime that = (RawDateTime)o; return(this == that || Date.Equals(that.Date) && Time.Equals(that.Time)); } return(false); }
public void TestEquals() { DateTime date = new DateTime(1976, 4, 19); RawTime timeUtc = new RawTime(13, 2, 30, 0, true); RawTime time = new RawTime(13, 2, 30, 99, false); RawDateTime datetimeUtc = new RawDateTime(date, timeUtc); RawDateTime datetime = new RawDateTime(date, time); Assert.IsTrue(datetime.Equals(datetime)); Assert.IsFalse(datetime.Equals(datetimeUtc)); Assert.IsTrue(datetimeUtc.Equals(new RawDateTime(new DateTime(1976, 4, 19), new RawTime(13, 2, 30, 0, true)))); }
public void TestToUniversalTime() { DateTime date = new DateTime(1976, 4, 19); RawTime timeUtc = new RawTime(15, 55, 0, 0, true); RawTime timeNoZone = new RawTime(15, 55, 0, 0, false); RawTime timeWithOffset = new RawTime(10, 55, 0, 0, -5, 0); RawDateTime datetimeUtc = new RawDateTime(date, timeUtc); RawDateTime datetimeNoZone = new RawDateTime(date, timeNoZone); RawDateTime datetimeWithOffset = new RawDateTime(date, timeWithOffset); DateTime dtUtc = datetimeUtc.ToUniversalTime(); DateTime dt = new DateTime( datetimeUtc.Date.Year, datetimeUtc.Date.Month, datetimeUtc.Date.Day, datetimeUtc.Time.Hour, datetimeUtc.Time.Minute, datetimeUtc.Time.Second, datetimeUtc.Time.Nanosecond / 1000000); Assert.AreEqual(dt, dtUtc); Assert.AreEqual(DateTimeKind.Utc, dtUtc.Kind); dtUtc = datetimeNoZone.ToUniversalTime(); dt = new DateTime( datetimeNoZone.Date.Year, datetimeNoZone.Date.Month, datetimeNoZone.Date.Day, datetimeNoZone.Time.Hour, datetimeNoZone.Time.Minute, datetimeNoZone.Time.Second, datetimeNoZone.Time.Nanosecond / 1000000); Assert.AreEqual(dt, dtUtc); Assert.AreEqual(DateTimeKind.Utc, dtUtc.Kind); dtUtc = datetimeWithOffset.ToUniversalTime(); dt = new DateTime( datetimeWithOffset.Date.Year, datetimeWithOffset.Date.Month, datetimeWithOffset.Date.Day, datetimeWithOffset.Time.Hour, datetimeWithOffset.Time.Minute, datetimeWithOffset.Time.Second, datetimeWithOffset.Time.Nanosecond / 1000000); dt = dt.Subtract(new TimeSpan(datetimeWithOffset.Time.HourOffset, datetimeWithOffset.Time.MinuteOffset, 0)); Assert.AreEqual(dt, dtUtc); Assert.AreEqual(DateTimeKind.Utc, dtUtc.Kind); }
public void TestToDateTime() { DateTime date = new DateTime(1976, 4, 19); RawTime timeUtc = new RawTime(15, 55, 0, 0, true); RawTime timeNoZone = new RawTime(15, 55, 0, 0, false); RawTime timeWithOffset = new RawTime(10, 55, 0, 0, -5, 0); RawDateTime datetimeUtc = new RawDateTime(date, timeUtc); RawDateTime datetimeNoZone = new RawDateTime(date, timeNoZone); RawDateTime datetimeWithOffset = new RawDateTime(date, timeWithOffset); DateTime dtUnspecified = datetimeUtc.ToDateTime(); DateTime dt = new DateTime( datetimeUtc.Date.Year, datetimeUtc.Date.Month, datetimeUtc.Date.Day, datetimeUtc.Time.Hour, datetimeUtc.Time.Minute, datetimeUtc.Time.Second, datetimeUtc.Time.Nanosecond / 1000000); Assert.AreEqual(dt, dtUnspecified); Assert.AreEqual(DateTimeKind.Unspecified, dtUnspecified.Kind); dtUnspecified = datetimeNoZone.ToDateTime(); dt = new DateTime( datetimeNoZone.Date.Year, datetimeNoZone.Date.Month, datetimeNoZone.Date.Day, datetimeNoZone.Time.Hour, datetimeNoZone.Time.Minute, datetimeNoZone.Time.Second, datetimeNoZone.Time.Nanosecond / 1000000); Assert.AreEqual(dt, dtUnspecified); Assert.AreEqual(DateTimeKind.Unspecified, dtUnspecified.Kind); dtUnspecified = datetimeWithOffset.ToDateTime(); dt = new DateTime( datetimeWithOffset.Date.Year, datetimeWithOffset.Date.Month, datetimeWithOffset.Date.Day, datetimeWithOffset.Time.Hour, datetimeWithOffset.Time.Minute, datetimeWithOffset.Time.Second, datetimeWithOffset.Time.Nanosecond / 1000000); Assert.AreEqual(dt, dtUnspecified); Assert.AreEqual(DateTimeKind.Unspecified, dtUnspecified.Kind); }
public void TestToString() { DateTime date = new DateTime(1976, 4, 19); RawTime timeUtc = new RawTime(13, 2, 30, 0, true); RawTime time = new RawTime(13, 2, 30, 99, false); RawTime timeOffset = new RawTime(13, 2, 30, 0, -1, 30); RawDateTime datetimeUtc = new RawDateTime(date, timeUtc); RawDateTime datetime = new RawDateTime(date, time); RawDateTime datetimeOffset = new RawDateTime(date, timeOffset); Assert.IsTrue(datetime.ToString().StartsWith(PofHelper.FormatDate(1976, 4, 19))); Assert.IsTrue(datetimeUtc.ToString().EndsWith("13:02:30Z")); Assert.IsTrue(datetime.ToString().EndsWith("13:02:30.000000099")); Assert.IsTrue(datetimeOffset.ToString().EndsWith("13:02:30-01:30")); }
public void TestRawDateTime() { DateTime date = new DateTime(1976, 4, 19); RawTime timeUtc = new RawTime(15, 55, 0, 0, true); RawTime timeNoZone = new RawTime(15, 55, 0, 0, false); RawTime timeWithOffset = new RawTime(10, 55, 0, 0, -5, 0); RawDateTime datetimeUtc = new RawDateTime(date, timeUtc); RawDateTime datetimeNoZone = new RawDateTime(date, timeNoZone); RawDateTime datetimeWithOffset = new RawDateTime(date, timeWithOffset); initPOFWriter(); pofWriter.WriteDate(0, date); pofWriter.WriteRawDateTime(0, datetimeUtc); pofWriter.WriteRawDateTime(0, datetimeNoZone); pofWriter.WriteRawDateTime(0, datetimeWithOffset); initPOFReader(); Assert.AreEqual(date, pofReader.ReadRawDateTime(0).Date); Assert.AreEqual(datetimeUtc, pofReader.ReadRawDateTime(0)); Assert.AreEqual(datetimeNoZone, pofReader.ReadRawDateTime(0)); Assert.AreEqual(datetimeWithOffset, pofReader.ReadRawDateTime(0)); }