To count days between two dates except Saturday and Sunday use the below C# code
public int CountDays(fromDate,toDate) { int noOfDays = 0; DateTime fDate = Convert.ToDateTime(fromDate); DateTime tDate = Convert.ToDateTime(toDate); while (DateTime.Compare(fDate, tDate) <= 0) { if (fDate.DayOfWeek != DayOfWeek.Saturday && fDate.DayOfWeek != DayOfWeek.Sunday) { noOfDays += 1; } fDate = fDate.AddDays(1); } return noOfDays; }
While this code works, it can be pretty slow since it is using a loop - especially if dealing with a large difference between dates or if running it against a large data set. The code below performs the same function but in a fraction of the time:
ReplyDeletepublic static int GetBusinessDays(DateTime startD, DateTime endD)
{
double calcBusinessDays =
1 + ((endD - startD).TotalDays * 5 -
(startD.DayOfWeek - endD.DayOfWeek) * 2) / 7;
if ((int)endD.DayOfWeek == 6) calcBusinessDays--;
if ((int)startD.DayOfWeek == 0) calcBusinessDays--;
return Convert.ToInt32(calcBusinessDays);
}
Thanks for the info David.
Delete