Думаю, что названия месяцев и времён года лучше занести в массив, например
- Код: Выделить всё
VAR
MonthNames: array [1..12] of string = ('январь','февраль','март','апрель','май','июнь','июль','август','сентябрь','октябрь','ноябрь','декабрь');
SeasonNames: array [1..4] of string = ('зима','весна','лето','осень');
Так как нам нужно знать, к кокому времени года относится тот или иной месяц, также можно завести еще один массив:
- Код: Выделить всё
MonthToSeason: array [1..12] of integer = (1,1,2,2,2,3,3,3,4,4,4,1);
(MonthToSeason[НомерМесяца], SeasonNames[MonthToSeason[НомерМесяца]])...
Для определения, номера месяца, с которого начинается следующий сезон также заведем массив, но нужно учитывать в дальнейшем, что для декабря следующий сезон начнется в следующем году
- Код: Выделить всё
StartNextSeason: array [1..4] of integer = (3,6,9,12);
(StartNextSeason[MonthToSeason[НомерМесяца]])...
...
StartNextSeason: array [1..4] of integer = (3,6,9,12);
Ну и понятно, что месяц начинается с 1-го числа, год нам почти всегда известен, за исключением, когда следующий сезон будет в следующем году.
Нужно собрать из дня, месяца и года две даты и получить разницу в днях...