Mira yo no soy un experto y no se si exista un funcion en genexus que ya realize lo que dices pero se me ocurre el siguiente codigo
...
..
&año=0
&mes=0
&dia=0
do while &fecha_final>&fecha_inicial
if &fecha_final>ADDYR(&fecha_inicial,1)
&año=&año+1
&fecha_inicial=ADDYR(&fecha_inicial,1)
endif
if &fecha_final>ADDMTH(&fecha_inicial,1)
&mes=&mes+1
&fecha_inicial=ADDMTH(&fecha_inicial,1)
endif
if &fecha_final>&fecha_inicial+1
&dia=&dia+1
&fecha_inicial=&fecha_inicial+1
endif
enddo
.........
......
...
Como te dije antes no soy un experto y de hecho nunca he hecho lo que pides en tu consulta, sin embargo podrias hacer algo parecido al codigo que esta arriba,
tan solo una observacion si haces algo parecido al codigo de arriba ten en cuenta que perderas una de las fechas(en el ejemplo de arriba "&fecha_inicial")
por lo tanto seria bueno que usaras un valor que contenga una copia del valor de la fecha que contenga el valor menor.
Espero te ayude y nos cuentes como te fue