Перечисления и структуры - Как инкрементировать месяц? - C (СИ)
Формулировка задачи:
Подскажите пожалуйста
есть перечисление
есть структура
Дальше я завожу структуру Date date 1 = {01, FEB, 2011};
как инкреминтровать месяц???
с днем и годом все ясно
а с месяцем?
enum Month {JAN = 1, FEB, MAR, APR, MAY, JUN, JUL, AUG,
SEP, OCT, NOV, DEC, MONTHS = 12};struct Date
{
int dd;
Month mm;
int yyyy;
};date.dd++; date.yyyy++;
Решение задачи: «Перечисления и структуры - Как инкрементировать месяц?»
textual
Листинг программы
date.mm++;
if( date.mm == MONTHS ) // после декабря идёт январь следующего года
{
date.mm = JAN;
date.yyyy++;
}
Объяснение кода листинга программы
В данном коде происходит инкрементирование месяца в структуре date.
date.mm++;- увеличивается значение переменнойmmна единицу.if( date.mm == MONTHS )- проверяется, равно ли значение переменнойmmмаксимальному значению месяцев в году (переменнойMONTHS).date.mm = JAN;- если условие истинно, то значение переменнойmmприсваивается значениеянварь(переменнойJAN).date.yyyy++;- и наконец, если условие истинно, то значение переменнойyyyyувеличивается на единицу. Этот код позволяет инкрементировать месяц, обеспечивая правильный порядок месяцев в году и переход на следующий год после декабря.