Hola Morfeo!
Hay una función en Delphi que te devuelve los días que hay en cada mes y está implementada de la siguiente forma:
Código Delphi
[-]
const
MonthDays: array [Boolean] of TDayTable =
((31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31),
(31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31));
function DaysInAMonth(const AYear, AMonth: Word): Word;
begin
Result := MonthDays[(AMonth = 2) and IsLeapYear(AYear), AMonth];
end;
La encuentras en la unidad Dateutils.pas
Un Saludo.