Time difference in year between table datetime values and now
조회 수: 1 (최근 30일)
이전 댓글 표시
I have a vector of datetime values. I would like to get a vector of years elapsed between the datetime values and the present. How do I do this?
I tried
years(MyTable.BirthDate- now)
and got
Error using years
Input data must be a real, numeric array, or a duration array. Use YEAR to extract year numbers from a
datetime array.
I tried
year(MyTable.BirthDate- now)
but it rounded the values, and I would like the decimal difference. How can I get, for example, that one of the entries is 6.8 years old today?
댓글 수: 0
채택된 답변
Steven Lord
2024년 5월 22일
Don't use the now function. It returns a serial date number. Use datetime('now') (which returns a datetime) instead.
fiveYearsFromNow = datetime(2029, 5, 22)
N = datetime('now')
y = years(fiveYearsFromNow-N)
But you may instead want to compute a calendarDuration instead of a duration. You can do this with the between function.
difference = between(N, fiveYearsFromNow) % Just shy of 5 years by timeofday(N)
To correct for the fact that fiveYearsFromNow represents midnight on May 22, 2029 you can add timeofday(N) to it so fiveYearsFromNow and N represent the same amount of time past midnight on their respective days.
T = timeofday(N)
difference = between(N, fiveYearsFromNow+T)
댓글 수: 0
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Dates and Time에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!