? ? ? ? [HttpGet] ? ? ? ? [AjaxOnly] ? ? ? ? public async Task<IActionResult> GetCalculateWorkingDays(string startDate, int weekdays) ? ? ? ? { ? ? ? ? ? ? DateTime startDateTemp = DateTime.Parse(startDate); ? ? ? ? ? ? DateTime Date_start = DateTime.Parse(startDateTemp.Year + "-01- 01"); ? ? ? ? ? ? DateTime Date_end = GetCurrentMonthLastDay(DateTime.Parse(startDateTemp.Year + "-12- 01")); ? ? ? ? ? ? string queryJson = "{\"Date_start\":\"" + Date_start.ToString("yyyy-MM-dd") + "\",\"Date_end\":\"" + Date_end.ToString("yyyy-MM-dd") + "\"}";
? ? ? ? ? //获取一年的节假日
? ? ? ? ? ? IEnumerable<T_HolidaysTypeEntity> listHolidayType = await _iHolidaysTypeBLL.GetList(queryJson); ? ? ? ? ? ? List<T_HolidaysTypeEntity> listHolidayTypeA = new List<T_HolidaysTypeEntity>(); ? ? ? ? ? ? listHolidayTypeA.AddRange(listHolidayType); ? ? ? ? ? ? string endDate = GetEndDate_A(startDate, weekdays, listHolidayTypeA); ? ? ? ? ? ? // object endDate = await GetEndDate(startDate, weekdays); ? ? ? ? ? ? return Success("保存成功!", endDate.ToString()); ? ? ? ? }
//计算工作日,遇到周末跳过去,不减1,直到等于0跳出循环。
public string GetEndDate_A(string startDate, int days, List<T_HolidaysTypeEntity> listHolidayType) ? ? ? ? { ? ? ? ? ? ? DateTime startDateTemp = DateTime.Parse(startDate); ? ? ? ? ? ? int daysTemp = days; ? ? ? ? ? ? do ? ? ? ? ? ? { ? ? ? ? ? ? ? ? startDateTemp = startDateTemp.AddDays(1); ? ? ? ? ? ? ? ? T_HolidaysTypeEntity resultModel = listHolidayType.Find(x => x.Date == startDateTemp); ? ? ? ? ? ? ? ? if (resultModel != null) ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? if (resultModel.Type == 1 || resultModel.Type == 2)//节假日或周末 ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? else if (resultModel.Type == 3)//补班需要减1 ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? daysTemp = daysTemp - 1; ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? else ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? daysTemp = daysTemp - 1; ? ? ? ? ? ? ? ? } ? ? ? ? ? ? } while (daysTemp>0);
? ? ? ? ? ? return startDateTemp.ToString("yyyy-MM-dd"); ? ? ? ? }
/// <summary> ? ? ? ? /// 获取指定月份的最后一天 ? ? ? ? /// </summary> ? ? ? ? /// <param name="dateTime">传入时间</param> ? ? ? ? /// <returns></returns> ? ? ? ? private DateTime GetCurrentMonthLastDay(DateTime dateTime) ? ? ? ? { ? ? ? ? ? ? DateTime d1 = new DateTime(dateTime.Year, dateTime.Month, 1); ? ? ? ? ? ? DateTime d2 = d1.AddMonths(1).AddDays(-1); ? ? ? ? ? ? return d2; ? ? ? ? }
? ? ? ?
|