public static void Main()
TimeSpan offset = TimeSpan.FromHours(-5);
Console.WriteLine("Test 1: " + getDays(new DateTimeOffset(2018, 4, 5, 21, 0, 0, offset),new DateTimeOffset(2018, 4, 6, 3, 0, 0, offset)));
Console.WriteLine("Test 2: " + getDays(new DateTimeOffset(2018, 4, 5, 21, 0, 0, offset),new DateTimeOffset(2018, 4, 6, 8, 0, 0, offset)));
Console.WriteLine("Test 3: " + getDays(new DateTimeOffset(2018, 4, 5, 21, 0, 0, offset),new DateTimeOffset(2018, 4, 6, 8, 0, 0, offset)));
Console.WriteLine("Test 4: " + getDays(new DateTimeOffset(2018, 4, 5, 13, 0, 0, offset),new DateTimeOffset(2018, 4, 6, 21, 0, 0, offset)));
Console.WriteLine("Test 5: " + getDays(new DateTimeOffset(2018, 4, 5, 13, 0, 0, offset),new DateTimeOffset(2018, 4, 5, 21, 0, 0, offset)));
Console.WriteLine("Test 6: " + getDays(new DateTimeOffset(2018, 4, 5, 3, 0, 0, offset),new DateTimeOffset(2018, 4, 5, 21, 0, 0, offset)));
Console.WriteLine("Test 7: " + getDays(new DateTimeOffset(2018, 4, 5, 3, 0, 0, offset),new DateTimeOffset(2018, 4, 7, 10, 0, 0, offset)));
Console.WriteLine("Test Negative: " + getDays(new DateTimeOffset(2018, 4, 5, 3, 0, 0, offset),new DateTimeOffset(2018, 4, 1, 10, 0, 0, offset)));
private static int getDays(DateTimeOffset from, DateTimeOffset to)
return (int)Math.Max((to.Date - from.Date).TotalDays,0);