/// <summary> /// Compares the specified interval. /// </summary> /// <param name="interval">The interval.</param> /// <returns>Interposition.</returns> /// <exception cref="Cebos.Veyron.SharedTypes.VeyronException">Unspecified error</exception> public Interposition Compare(DateTimeInterval interval) { if (interval != null) return Compare(StartDate, FinishDate, interval.StartDate, interval.FinishDate); throw new VeyronException("Unspecified error"); }
public void Unite() { var intervalA = new DateTimeInterval(new DateTime(2000, 12, 1, 5, 0, 0), new DateTime(2001, 1, 2, 12, 0, 0)); var intervalB = new DateTimeInterval(new DateTime(2001, 1, 2, 12, 0, 0), new DateTime(2001, 2, 2, 12, 6, 0)); var unitedInterval = intervalB.Unite(intervalA); Assert.AreEqual(unitedInterval, new DateTimeInterval(new DateTime(2000, 12, 1, 5, 0, 0), new DateTime(2001, 2, 2, 12, 6, 0))); intervalB = new DateTimeInterval(new DateTime(2001, 1, 2, 13, 0, 0), new DateTime(2001, 2, 2, 12, 6, 0)); unitedInterval = intervalA.Unite(intervalB); Assert.AreEqual(unitedInterval, null); intervalB = new DateTimeInterval(new DateTime(2001, 1, 1, 0, 0, 0), new DateTime(2001, 2, 2, 12, 6, 0)); unitedInterval = intervalA.Unite(intervalB); Assert.AreEqual(unitedInterval, new DateTimeInterval(new DateTime(2000, 12, 1, 5, 0, 0), new DateTime(2001, 2, 2, 12, 6, 0))); intervalB = new DateTimeInterval(intervalA.StartDate, intervalA.FinishDate); unitedInterval = intervalA.Unite(intervalB); Assert.AreEqual(unitedInterval, intervalA); intervalB = new DateTimeInterval(new DateTime(1900, 1, 1, 0, 0, 0), new DateTime(2010, 2, 2, 12, 6, 0)); unitedInterval = intervalA.Unite(intervalB); Assert.AreEqual(unitedInterval, intervalB); var date = new DateTime(2000, 1, 1, 0, 0, 0); intervalA = intervalB = new DateTimeInterval(date, date); unitedInterval = intervalA.Unite(intervalB); Assert.AreEqual(unitedInterval, intervalA); }
/// <summary> /// Compares the specified date1. /// </summary> /// <param name="date1">The date1.</param> /// <param name="date2">The date2.</param> /// <returns>Interposition.</returns> public Interposition Compare(DateTime date1, DateTime date2) { var interval = new DateTimeInterval(date1, date2); return Compare(interval); }
/// <summary> /// Equalses the specified other. /// </summary> /// <param name="other">The other.</param> /// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns> public bool Equals(DateTimeInterval other) { if (ReferenceEquals(null, other)) return false; if (ReferenceEquals(this, other)) return true; return other.StartDate.Equals(StartDate) && other.FinishDate.Equals(FinishDate); }
/// <summary> /// Unites the specified date1. /// </summary> /// <param name="date1">The date1.</param> /// <param name="date2">The date2.</param> /// <returns>DateTimeInterval.</returns> public DateTimeInterval Unite(DateTime date1, DateTime date2) { var interval = new DateTimeInterval(date1, date2); return Unite(interval); }