Думаю, что названия месяцев и времён года лучше занести в массив, например
- Код: Выделить всё
- 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-го числа, год нам почти всегда известен, за исключением, когда следующий сезон будет в следующем году.
Нужно собрать из дня, месяца и года две даты и получить разницу в днях...