преобразуйте время в годах, месяцах и днях

Как я могу точно конвертировать продукты (в днях) изdifftime ниже лет, месяцев и дней?

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

Это годы и дни, но как я могу включить месяцы?

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

Я также не уверен, как определить месяцы. Будет ли 4 недели считаться месяцем или днем того же месяца. Поэтому для более позднего определения месяца, если начальная дата была 2012-01-10, а текущая 2012-05-31, то у нас будет 0 лет, 5 месяцев и 21 день. Это работает хорошо, но что, если исходная дата была 31-го числа месяца, а дата окончания была 28 февраля, это будет считаться месяцем?

As I wrote this question the question itself evolved so I'd better clarify:

What would be the best (most logical approach) to defining months and then how to find diff time in years, months and days?

Ответы на вопрос(4)

Ваш ответ на вопрос