Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / web / ASP.NET

Find the count of a weekday between two dates without iterating/looping

0.00/5 (No votes)
11 Nov 2011CPOL 8.3K  
Is it easier to start from the next targeted day? Subtract that date from the end date. If the result is negative, return 0 otherwise return the quotient of the difference in days between the two dates divided by 7 plus 1.public static int findWeekCount(DateTime startDate, DateTime toDate,...

Is it easier to start from the next targeted day? Subtract that date from the end date. If the result is negative, return 0 otherwise return the quotient of the difference in days between the two dates divided by 7 plus 1.


C#
public static int findWeekCount(DateTime startDate, DateTime toDate, DayOfWeek dayOfWeek)
{
    DateTime firstTargetDate = startDate+ TimeSpan.FromDays(7 + (int)dayOfWeek - ((int)startDate.DayOfWeek) % 7);
    return (toDate - firstTargetDate).Days < 0 ? 0 : (((toDate - firstTargetDate).Days) / 7) + 1 ;
}

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)