El truco consiste en componer una fecha con el día 1 del mes siguiente al que deseas saber el número de días. Hay que tener cuidado con el mes de diciembre que pasa a ser enero del año siguiente.
A esa fecha le restas un día y ya tienes el número de días.
Esto te soluciona el tema de los bisiestos ya que no solo hay que tener en cuenta los múltiplos de 4 sino que además cada 400 años hay excepciones.
Por ejemplo los meses de febrero del año 2100, 2200, 2300, 2500, 2600, 2700, ... no serán bisiestos.
mientras que los meses de febrero de 1600, 2000, 2400, 2800, ... si lo son.
Bueno al grano, el método:
Date ld_dia, ld_dia_sigte
Long ll_dia, ll_mes, ll_anio
if not isDate (String (ld_dia)) then return -1
ll_mes = Month (ld_dia)
ll_anio = Year (ld_dia)
if ll_mes = 12 then
ll_anio ++
ll_mes = 1
else
ll_mes ++
end if
ld_dia_sigte = Date ('01/'+ String (ll_mes) + '/'+ String (ll_anio))
Return Day (RelativeDate (ld_dia_sigte, -1))