65.9K
CodeProject is changing. Read more.
Home

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

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0 vote)

Nov 11, 2011

CPOL
viewsIcon

8291

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.

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 ;
}