Exemple #1
0
        private DateTime CheckEndDate(DateTime newStartDate, int minutes, HolidayProvider holidays)
        {
            var endDate = TimeTools.AddMinutes(newStartDate, minutes, holidays);

            endDate = holidays.Validate(endDate);
            endDate = WorkDayProvider.Validate(endDate, holidays);
            endDate = WorkHourProvider.Validate(endDate, holidays);
            return(endDate);
        }
Exemple #2
0
        public static DateTime Validate(DateTime date, HolidayProvider holidays)
        {
            var time = date.TimeOfDay;

            //time is at or before 8AM
            if (time < clockIn)
            {
                return(GetNewDate(date, time, clockIn));
            }
            //time is between 8AM and 12noon
            if (time >= clockIn && time <= clockOut)
            {
                return(date);
            }
            //time is between 12noon and 1pm
            if (time >= clockOut && time <= clockInAfter)
            {
                return(GetNewDate(date, time, clockInAfter));
            }
            //time is between 1pm and 5pm
            if (time >= clockInAfter && time < clockOutAfter)
            {
                return(date);
            }
            //time is 5pm
            if (time == clockOutAfter)
            {
                return(date);
            }
            //time is after 5pm
            if (time >= clockOutAfter)
            {
                date = TimeTools.GetNewDate(date.AddDays(1), clockIn);
                date = WorkDayProvider.Validate(date, holidays);
                date = holidays.Validate(date);
            }
            return(date);
        }
Exemple #3
0
        private DateTime?GetThanksgiving()
        {
            var thanksgiving = TimeTools.GetLastDay(targetYear, 11, DayOfWeek.Thursday);

            return(thanksgiving == null ? DateTime.MinValue : thanksgiving);
        }
Exemple #4
0
        private DateTime?GetLaborDay()
        {
            var laborDay = TimeTools.GetFirstDay(targetYear, 9, DayOfWeek.Monday);

            return(laborDay == null ? DateTime.MinValue : laborDay);
        }
Exemple #5
0
        private DateTime?GetMemorialDay()
        {
            var memorialDay = TimeTools.GetLastDay(targetYear, 5, DayOfWeek.Monday);

            return(memorialDay == null ? DateTime.MinValue : memorialDay);
        }