Utilizando un algoritmo de calculo de fecha juliana, generamos el numero juliano para cada una de las fechas y lo restamos, nos da exactamente los dias que hay entre esas fechas, incluyendo años bisiestos y meses dispares.
He rebuscado en mi biblioteca de algoritmos y este es el que yo tengo:
10 DD = VAL(RIGHT$(FECHA$, 2))
20 MM = VAL(MID$(FECHA$, 5, 2))
30 AAAA = VAL(LEFT$(FECHA$, 4))
40 '
50 Juliana# = DD + INT(365.25 * (AAAA - ABS(MM < 3))) + INT(30.6001 * (MM + 1 + 12 * ABS(MM < 3))) - INT(AAAA / 100) + INT(AAAA / 400) + ABS(1 AND (AAAA / 100) = INT(AAAA / 100) AND (AAAA / 400) <> INT(AAAA / 400) AND MM < 3) + 1720996.5#
60 PRINT FECHA$, Juliana#
Esta en GwBasic con numeros de linea para que se vea claro que la formula matematica es toda una.
CUIDADO: este algoritmo espera encontrar FECHA$ en el formato AAAMMDD osea 20050415 para el dia de hoy, si lo quieres de otra manera solo tienes que modificar las lineas de la 10 a la 30 para que extraigan los digitos en el orden que esten.
Saludos y Suerte.
Pedro