convertir difftime temps en années, mois et jours

Comment puis-je convertir avec précision les produits (unités est en jours) de la difftime ci-dessous pour les années, les mois et les jours?

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

Cela fait des années et des jours, mais comment pourrais-je inclure mois?

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"))

Je ne suis pas sûr de la façon de définir mois. Voudrais 4 semaines être considéré comme un mois ou au passage de ce même mois, jour. Donc, pour la définition d'un mois si la date initiale a été 2012-01-10 et le courant 2012-05-31 nous aurions 0 ans, 5 mois et 21 jours. Cela fonctionne bien, mais que faire si la date initiale était le 31 de ce mois et la date de fin était sur 28 fév cela serait-il considéré comme un mois?

Comme je l'ai écrit à cette question, la question elle-même a évolué donc je ferais mieux de préciser:

Quel serait le meilleur (le plus logique) à la définition des mois et puis, comment trouver diff temps en années, en mois et en jours?

OriginalL'auteur Tyler Rinker | 2012-05-31