Создание функции даты С++

99
4

На этот раз я работаю, и они работают. Я пытаюсь использовать правильные числа дней в конкретный месяц, используя функцию CheckDay. Однако это вызывает ошибку времени выполнения, в которой говорилось: "abort() был вызван". Я считаю, что в этой строке должно быть что-то неправильное: "day = checkDay (день)"; , но не знаю, как это исправить. Спасибо!!

void Date::increaseADay()
{
int temp;

second++;
if (second == 60)
{
second = 0;
++minute;
}
if (minute == 60)
{
minute = 0;
++hour;
}
if (hour == 24)
{
hour = 0;
++day;
}

day = checkDay(day);

}

unsigned int Date::checkDay(int testDay) const
{
static const array< int, monthsPerYear + 1 > daysPerMonth =
{ 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

// determine whether testDay is valid for specified month
if (testDay > 0 && testDay <= daysPerMonth[month])
return testDay;

// February 29 check for leap year
if (month == 2 && testDay == 29 && (year % 400 == 0 ||
(year % 4 == 0 && year % 100 != 0)))
return testDay;

throw invalid_argument("Invalid day for current month and year");
} // end function checkDay

спросил(а) 2017-03-09T13:49:00+03:00 3 года, 3 месяца назад
0
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема