Te explico un poco lo del tema con modificaciones...
const
MonthDays: array [1..12] of byte =(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
function DaysInAMonth(const AYear, AMonth: Word): Word;
begin
// Miramos si es febrero y año bisiesto, para ello usamos la función
// del tema que te comento héctor isLeapYear
if (AMonth = 2) and (isLeapYear(AYear)) then
Result := MonthDays[AMonth] + 1 // De ser así se pone 29 días a feb.
else
Result := MonthDays[AMonth]; // En otro caso los días salen de la tabla.
end;
function IsLeapYear(Year: Word): Boolean;
begin
Result := (Year mod 4 = 0) and ((Year mod 100 <> 0) or (Year mod 400 = 0));
end;
|