How to calculate the number of weekdays between two dates in C#

1 Answer

0 votes
using System;

class WeekdayCalculatorBetweenTwoDates
{
    static void Main()
    {
        Console.WriteLine(countWeekDays(new DateTime(2025, 1, 1), new DateTime(2025, 1, 7))); 
        Console.WriteLine(countWeekDays(new DateTime(2025, 2, 1), new DateTime(2025, 2, 10))); 
        Console.WriteLine(countWeekDays(new DateTime(2024, 1, 1), new DateTime(2024, 12, 31))); 
        Console.WriteLine(countWeekDays(new DateTime(2025, 1, 1), new DateTime(2025, 12, 31))); 
    }

    public static int countWeekDays(DateTime d1, DateTime d2) {
        int ndays = 1 + Convert.ToInt32((d2 - d1).TotalDays);
        int nsaturdays = (ndays + Convert.ToInt32(d1.DayOfWeek)) / 7;
        
        return ndays - 2 * nsaturdays
               - (d1.DayOfWeek == DayOfWeek.Sunday ? 1 : 0)
               + (d2.DayOfWeek == DayOfWeek.Saturday ? 1 : 0);
    }
}



/*
run:

5
6
262
261

*/

 



answered Feb 18, 2025 by avibootz

Related questions

1 answer 87 views
1 answer 80 views
1 answer 101 views
1 answer 101 views
1 answer 88 views
2 answers 77 views
2 answers 236 views
...