using System; namespace FSO.Server.Database.DA.LotVisits { public static class LotVisitUtils { /// /// Calculates the overlap between two date ranges. /// Useful utility function for calculating visit hours. /// /// /// /// public static TimeSpan CalculateDateOverlap(DateTime r1_start, DateTime r1_end, DateTime r2_start, DateTime r2_end) { var startsInRange = r2_start >= r1_start && r2_start <= r1_end; var endsInRange = r2_end <= r1_end && r2_end >= r1_start; if (startsInRange && endsInRange) { //Within the range / equal return r2_end.Subtract(r2_start); } else if (startsInRange) { //Starts within range but does not end in range return r1_end.Subtract(r2_start); } else if (endsInRange) { //Ends in range but does not start in range return r2_end.Subtract(r1_start); } else { return new TimeSpan(0); } } /// /// Returns midnight of the current day. /// Useful utility function for calculating visit hours. /// public static DateTime Midnight() { var now = DateTime.UtcNow; return new DateTime(now.Year, now.Month, now.Day, 0, 0, 0); } } }