sabes cual es el problema los años,
la respuesta 9130 que te sale de restar 30/03/1986 y 29/03/2011 es por que toma en cuanta la catida de dias que hay entre esas dos fechas
lo que tendrias que hacer es omitir los años y resta solo dias y meses
Código java:
Ver original try {
date_ini = df_ini.parse("20/01/1986");
date_fin=df_ini.parse("29/04/2011");
long fi = date_ini.getTime();
long ff = date_fin.getTime();
long dif= ff- fi;
double dias
= Math.
floor(dif
/ (1000 * 3600 * 24));
System.
out.
println("DIAS "+dias
);
int mes
=Integer.
parseInt(df_mes.
format(date
))-1;
System.
out.
println(df_dia.
format(date
)+" DIAS y "+mes
+" MESES para tu cumpleaño");
e.printStackTrace();
}