public static void Main()
DateTime currentTime = DateTime.Now.AddHours(3);
DateTime monthBeginningTime = new DateTime(currentTime.Year, currentTime.Month, 1, 0, 0, 0);
int currentSeconds = (int)(currentTime - monthBeginningTime).TotalSeconds;
int totalMonthSeconds = DateTime.DaysInMonth(currentTime.Year, currentTime.Month) * 24 * 3600;
double totalViews = 180.0;
double expectedViews = currentSeconds * totalViews / totalMonthSeconds;
int nextView = (int)expectedViews + 1;
DateTime nextTime = monthBeginningTime.AddSeconds((nextView / totalViews) * totalMonthSeconds);
Console.WriteLine("Expected views: {0} ({1})", expectedViews, expectedViews - 20);
Console.WriteLine("Next ({0} [{7}]) view at {1:00}.{2:00}.{3:0000} {4:00}:{5:00}:{6:00}", nextView, nextTime.Day, nextTime.Month, nextTime.Year, nextTime.Hour, nextTime.Minute, nextTime.Second, nextView - 20);