public static void Main()
public static void DoCS()
var start = new DateTime(2019, 11, 13, 0, 0, 0, DateTimeKind.Utc);
var end = new DateTime(2020, 12, 13, 0, 0, 0, DateTimeKind.Utc);
var durationDays = DateUtils.InclusiveDifferenceInDaysBetween(start, end);
var durationWeeks = (decimal)durationDays / 7;
var holidayDays = (int)Math.Ceiling(durationDays * (28 / 365M));
var holidayWeeks = (decimal)holidayDays / 5;
var durationInWeeks = (int)Math.Ceiling(durationWeeks - holidayWeeks);
var totalWorkingMinutesPerWeek = (39 * 60);
var result = (int)Math.Ceiling(durationInWeeks * totalWorkingMinutesPerWeek / 60M * 0.2M);
Console.WriteLine($"Off The JobHours CS - {result}");
public static int InclusiveDifferenceInDaysBetween(DateTime date1, DateTime date2) => (int)Math.Abs((date1 - date2).TotalDays) + 1;
public static int InclusiveDifferenceInWeeksBetween(DateTime date1, DateTime date2, int excludeDays = 0)
var days = InclusiveDifferenceInDaysBetween(date1, date2) - Math.Abs(excludeDays);
return (int)Math.Ceiling((decimal)days / 7);