public DateTime SetWorkingDate(string date_start, string date_end, int?id_form) { DateTime dateTime1 = DateTime.Parse(date_end); DateTime dateTime2 = DateTime.Parse(date_start); DateTime dateTime3 = DateTime.Parse(date_end); List <ParameterQueryString> parameterQueryStringList = new List <ParameterQueryString>(); ParameterQueryString parameterQueryString1 = new ParameterQueryString { DbType = SqlDbType.Date, Value = dateTime2.ToString("yyyy-MM-dd"), Name = "@DateStart" }; parameterQueryStringList.Add(parameterQueryString1); ParameterQueryString parameterQueryString2 = new ParameterQueryString { DbType = SqlDbType.Date, Name = "@DateEnd", Value = dateTime3.ToString("yyyy-MM-dd") }; parameterQueryStringList.Add(parameterQueryString2); DataTable dataTable = connection.OpenDataTable("SELECT * FROM IgnoranceDate WHERE Date >= @DateStart AND Date <= @DateEnd", parameterQueryStringList); if (dateTime1.DayOfWeek.ToString().Contains("Saturday")) { dateTime1 = dateTime1.AddDays(2.0); } else if (dateTime1.DayOfWeek.ToString().Contains("Sunday")) { dateTime1 = dateTime1.AddDays(1.0); } else if (dataTable.Rows.Count > 0) { for (int index = 0; index < dataTable.Rows.Count; ++index) { if (Convert.ToDateTime(dataTable.Rows[index].ItemArray[2]) == dateTime1) { DateTime dateTime4 = Convert.ToDateTime(dataTable.Rows[index].ItemArray[2]); if (dateTime4.DayOfWeek.ToString().Contains("Saturday")) { dateTime4 = Convert.ToDateTime(dataTable.Rows[index].ItemArray[2]); if (dateTime4.DayOfWeek.ToString().Contains("Sunday")) { continue; } } dateTime1 = dateTime1.AddDays(1.0); } } } return(dateTime1); }
public int CalculateLeave(string date_start, string date_end) { List <string> stringList1 = new List <string>(); double num1 = (DateTime.Parse(date_end) - DateTime.Parse(date_start)).TotalDays + 1.0; int num2 = Convert.ToInt32(num1); DateTime dateTime1 = DateTime.Parse(date_start); DateTime dateTime2 = DateTime.Parse(date_end); List <string> stringList2 = new List <string>(); for (int index = 0; (double)index < num1; ++index) { if (index == 0) { if (dateTime1.DayOfWeek.ToString() == "Saturday" || dateTime1.DayOfWeek.ToString() == "Sunday") { num2 = Convert.ToInt32(num2) - 1; } } else if (dateTime1.AddDays((double)index).DayOfWeek.ToString() == "Saturday" || dateTime1.AddDays((double)index).DayOfWeek.ToString() == "Sunday") { num2 = Convert.ToInt32(num2) - 1; } } List <ParameterQueryString> parameterQueryStringList = new List <ParameterQueryString>(); ParameterQueryString parameterQueryString1 = new ParameterQueryString { DbType = SqlDbType.Date, Name = "@DateStart", Value = dateTime1.ToString("yyyy-MM-dd") }; parameterQueryStringList.Add(parameterQueryString1); ParameterQueryString parameterQueryString2 = new ParameterQueryString { DbType = SqlDbType.Date, Name = "@DateEnd", Value = dateTime2.ToString("yyyy-MM-dd") }; parameterQueryStringList.Add(parameterQueryString2); DataTable dataTable = connection.OpenDataTable("SELECT * FROM IgnoranceDate WHERE Date >= @DateStart AND Date <= @DateEnd", parameterQueryStringList); if (dataTable.Rows.Count > 0) { for (int index = 0; index < dataTable.Rows.Count; ++index) { DateTime dateTime3 = Convert.ToDateTime(dataTable.Rows[index][2]); num2 = dateTime3.Date.DayOfWeek.ToString() == "Saturday" || dateTime3.Date.DayOfWeek.ToString() == "Sunday" ? Convert.ToInt32(num2) : Convert.ToInt32(num2) - 1; } } return(num2); }