Как я уже сказал, невозможно будет предоставить точный код, так как я не знаю, какие форматы даты вы используете как в таблице праздничных дней, так и в сводной таблице данных.
Но вы можете использовать приведенный ниже код и измените его в соответствии с вашими требованиями.
Этот код просто жестко кодирует праздничную таблицу в таблице данных.
DataTable HOLIDAYS = new DataTable();
DataColumn[] dc1 = new DataColumn[] {new DataColumn("ID",typeof(string)),
new DataColumn("HOLIDAYDATE",typeof(string)),
new DataColumn("HOLIDAYNAME",typeof(string))};
HOLIDAYS.Columns.AddRange(dc1);
DataRow dr3 = SUMMARYDATA.NewRow();
dr3["ID"] = "1"; dr3["HOLIDAYDATE"] = "2020-01-01"; dr3["HOLIDAYNAME"] = "New Year's Day";
SUMMARYDATA.Rows.Add(dr3);
DataRow dr4 = SUMMARYDATA.NewRow();
dr4["ID"] = "2"; dr4["HOLIDAYDATE"] = "2020-01-25"; dr4["HOLIDAYNAME"] = "Chinese Lunar New Year's Day";
SUMMARYDATA.Rows.Add(dr4);
Logi c
if ((pRow.Field<DateTime>("STATUSIN").DayOfWeek == DayOfWeek.Saturday) || pRow.Field<DateTime>("STATUSIN").DayOfWeek == DayOfWeek.Sunday))
{
if (pRow.Field<DateTime>("STATUSIN") == DateTime.MinValue)
{
}
else
{
pRow["TOTALWH"] = "00:00:00";
}
}
else if (HOLIDAYS.AsEnumerable()
.Select(p => new { ID = p.Field<string>("ID"), HOLIDAYDATE = p.Field<string>("HOLIDAYDATE"), HOLIDAYNAME = p.Field<string>("HOLIDAYNAME") })
.ToList()
.Where(b => b.HOLIDAYDATE == pRow.Field<DateTime>("STATUSIN").ToString())
.Any())
{
pRow["TOTALWH"] = "00:00:00";
}