示例#1
0
        public static int GetFullDaysWorked(
            DaysNightsType daysNightsType,
            DateTime workPeriodStartDate,
            DateTime?workPeriodEndDate,
            DateTime reportStartDate,
            DateTime reportEndDate)
        {
            var startDate = workPeriodStartDate >= reportStartDate
                ? workPeriodStartDate
                : reportStartDate;

            var endDate = workPeriodEndDate ?? reportEndDate;

            endDate = endDate <= reportEndDate ? endDate : reportEndDate;

            if (workPeriodEndDate == null || workPeriodEndDate > reportEndDate)
            {
                return(endDate.Subtract(startDate.Date).Days + 1);
            }

            if (workPeriodStartDate == workPeriodEndDate.Value)
            {
                return(1);
            }

            var days = workPeriodEndDate.Value.Subtract(startDate.Date).Days;

            return(daysNightsType == DaysNightsType.Nights ? days : days + 1);
        }
示例#2
0
 public int CalculateFullDaysWorked(
     DaysNightsType daysOrNights,
     string placementStartDate,
     string placementEndDate,
     string reportStartDate,
     string reportEndDate)
 {
     return(PayCalcs.GetFullDaysWorked(
                daysOrNights,
                DateTime.Parse(placementStartDate),
                placementEndDate != null ? DateTime.Parse(placementEndDate) : (DateTime?)null,
                DateTime.Parse(reportStartDate), DateTime.Parse(reportEndDate)));
 }