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); }
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))); }