public static void Main()
DateTime Start = new DateTime(2018, 10, 31);
DateTime End = new DateTime(2018, 11, 2);
int days = (int)(End - Start).TotalDays + 1;
int holidays = days / 7 * 2;
DateTime dt = End.AddDays(-remain);
while (dt.Date <= End.Date)
if (dt.DayOfWeek == DayOfWeek.Saturday || dt.DayOfWeek == DayOfWeek.Sunday)
dt = new DateTime(year, 12, 25);
if (dt >= Start && dt <= End && dt.DayOfWeek!=DayOfWeek.Saturday && dt.DayOfWeek != DayOfWeek.Sunday) holidays++;
dt = new DateTime(year, 7, 4);
if (dt >= Start && dt <= End && dt.DayOfWeek!=DayOfWeek.Saturday && dt.DayOfWeek != DayOfWeek.Sunday) holidays++;
dt = new DateTime(year, 10, 31);
if (dt >= Start && dt <= End && dt.DayOfWeek!=DayOfWeek.Saturday && dt.DayOfWeek != DayOfWeek.Sunday) holidays++;
} while (year <= End.Year);
int bussinessDays = days - holidays;
Console.WriteLine($"holidays : {holidays}");
Console.WriteLine($"bussinessDays : {bussinessDays}");