static void Main(string[] args)
var showWrongDatesCount = 3;
var dateToCheck = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
for (int i = 1; i <= daysToCheck; i++) {
var checkEndOfYear = new DateTime(dateToCheck.Year, 12, 31);
var checkTotalDays = (int)checkEndOfYear.Subtract(dateToCheck).TotalDays;
bool checkIsHighYear = (dateToCheck.Year - 2000) % 4 == 0;
var checkDaysUntilEndOfYear = DaysUntilEndOfYear(dateToCheck.Day, dateToCheck.Month, checkIsHighYear);
if (checkTotalDays != checkDaysUntilEndOfYear) {
Console.WriteLine($"Number of days from {dateToCheck:d} till end of {dateToCheck.Year} is {checkTotalDays} but counted {checkDaysUntilEndOfYear}");
dateToCheck = dateToCheck.AddDays(-1);
if (wrongs >= showWrongDatesCount) {
Console.WriteLine($"All {daysToCheck} days checked out fine!");
static int DaysUntilEndOfYear(int day, int month, bool isHighYear)
throw new NotImplementedException();