Una aproximación a la solución del problema es:
Define un array de constantes donde almacenas la cantidad de días de cada mes de un año no bisiesto, por ejemplo
Dias_Meses:Array [1..12] of byte = (31,28,31,30,31,30,31,31,30,31,30,31);
Necesitarás una función que dado un año te devuelva si este es bisiesto o no, como sabrás los años bisiestos son aquellos que son multiplo de cuatro y a la vez no lo son de 400, por ejemplo el año 1900 es bisiesto, pero el 1800 no lo es. Esto te sirve para saber si ese año le debes sumar 29 días por Febrero o 28 (como dice el array), el resto no reviste mucha dificultad, calculas los años completos que hay entre las dos fechas y luego los remanentes de los años a los que pertenecen las fechas dadas.
No mencionas si ambas fechas yá estan validadas, o sea que tienes la certeza de que son fechas válidas.