public EntryExitTime(IMutableDayTime entryTime, IMutableDayTime exitTime) { if (entryTime == null) throw new ArgumentNullException(nameof(entryTime)); if (exitTime == null) throw new ArgumentNullException(nameof(exitTime)); _entryTime = entryTime; _exitTime = exitTime; }
public bool Equals(IMutableDayTime other) { if (ReferenceEquals(null, other)) return false; if (ReferenceEquals(this, other)) return true; if (other.GetType() != this.GetType()) return false; return Equals((MutableDayTime)other); }
private void CompareAndSortTwoDayTimes(IMutableDayTime dayTimeOne, IMutableDayTime dayTimeTwo, out IMutableDayTime greaterDayTime, out IMutableDayTime lesserDayTime) { if (dayTimeOne.CompareTo(dayTimeTwo) >= 0) { greaterDayTime = dayTimeOne; lesserDayTime = dayTimeTwo; } else { greaterDayTime = dayTimeTwo; lesserDayTime = dayTimeOne; } }
public IMutableTimeSpan CreateAsDifferenceOf(IMutableDayTime dayTime, IMutableDayTime andDayTime) { IMutableDayTime greaterDayTime; IMutableDayTime lesserDayTime; CompareAndSortTwoDayTimes(dayTime, andDayTime, out greaterDayTime, out lesserDayTime); var hourDifference = (int)(greaterDayTime.Hour - (int)lesserDayTime.Hour); var minuteDifference = (int)(greaterDayTime.Minute - (int)lesserDayTime.Minute); if (minuteDifference < 0) { hourDifference -= 1; minuteDifference = MinutesPerHour + minuteDifference; } return CreateFrom(hourDifference, minuteDifference); }
public int CompareTo(IMutableDayTime other) { return (Hour*MinutesPerHour + Minute).CompareTo(other.Hour*MinutesPerHour + other.Minute); }