Convertir el tiempo de tiempo en años, meses y días.

¿Cómo puedo convertir con precisión los productos (unidades en días) de ladifftime Abajo a años, meses y días?

difftime(Sys.time(),"1931-04-10")
difftime(Sys.time(),"2012-04-10")

Esto hace años y días, pero ¿cómo podría incluir meses?

yd.conv<-function(days, print=TRUE){
    x<-days*0.00273790700698851
    x2<-floor(x)
    x3<-x-x2
    x4<-floor(x3*365.25)
    if (print) cat(x2,"years &",x4,"days\n")
    invisible(c(x2, x4))
}

yd.conv(difftime(Sys.time(),"1931-04-10"))
yd.conv(difftime(Sys.time(),"2012-04-10"))

Tampoco estoy seguro de cómo definir meses. Se considerarían 4 semanas al mes o al pasar el mismo día del mes. Entonces, para la definición posterior de un mes, si la fecha inicial era 2012-01-10 y la actual 2012-05-31 tendríamos 0 años, 5 meses y 21 días. Esto funciona bien, pero ¿qué pasaría si la fecha original fuera el 31 del mes y la fecha final fuera el 28 de febrero, se consideraría un mes?

Cuando escribí esta pregunta, la pregunta en sí evolucionó, así que mejor debo aclarar:

¿Cuál sería el mejor (el enfoque más lógico) para definir los meses y luego cómo encontrar la diferencia de tiempo en años, meses y días?

Respuestas a la pregunta(4)

Su respuesta a la pregunta