public static bool IsIn(this ITimeRange timerange, DateTime?dFrom, DateTime?dTo) { return(timerange.IsValid() && dFrom.HasValue && dTo.HasValue && dFrom <= dTo && timerange.FromDate >= dFrom && timerange.ToDate <= dTo); }
public static bool Contains(this ITimeRange timerange, DateTime?datetime) { return(timerange.IsValid() && datetime.HasValue && timerange.FromDate <= datetime && ( !timerange.ToDate.HasValue || (timerange.ToDate.Ceiling() >= datetime) )); }
public static ITimeRange Join(this ITimeRange value1, ITimeRange value) { if (!value.IsValid() || !value1.IsValid()) throw new Exception("Invalid time range."); DateTime? newFromDate = value.FromDate > value1.FromDate ? value.FromDate : value1.FromDate; DateTime? newToDate = value.ToDate.HasValue ? (value1.ToDate.HasValue ? (value.ToDate < value1.ToDate ? value.ToDate : value1.ToDate) : value.ToDate) : value1.ToDate; TimeRange range = new TimeRange() { FromDate = newFromDate, ToDate = newToDate }; return range.IsValid() ? range : new TimeRange(); }
public static ITimeRange Join(this ITimeRange value1, ITimeRange value) { if (!value.IsValid() || !value1.IsValid()) { throw new Exception("Invalid time range."); } DateTime?newFromDate = value.FromDate > value1.FromDate ? value.FromDate : value1.FromDate; DateTime?newToDate = value.ToDate.HasValue ? (value1.ToDate.HasValue ? (value.ToDate < value1.ToDate ? value.ToDate : value1.ToDate) : value.ToDate) : value1.ToDate; TimeRange range = new TimeRange() { FromDate = newFromDate, ToDate = newToDate }; return(range.IsValid() ? range : new TimeRange()); }