首页 > 解决方案 > 在 Julia 中将日期差异转换为年份

问题描述

使用 Julia,我希望找到两个时间点 t2 和 t1 之间的时间段,其中 t1 和 t2 的格式为“ymd”。我可以在几天内获得此值,但我想将其转换为几年:

date_format = DateFormat("y-m-d")
age_days = Date(t2, date_format) - Date(t1, date_format)
age_years = Dates.Year(age_days)

以上始终返回错误。明白我可以只做 Dates.value(age_days)/365.25,但是有没有办法利用内置函数来做到这一点?

标签: datejulia

解决方案


此功能可在以下位置找到DayCounts.jl

julia> using Dates, DayCounts

julia> d1=Date("2020-02-14", dateformat"y-m-d");

julia> d2=Date("2021-02-15", dateformat"y-m-d");

julia> yearfrac(d1,d2,DayCounts.ActualActualISDA())
1.003069091997904

棘手的部分是在计算这些值时决定使用什么作为分子和分母。上述代码使用 2006 ISDA 定义,§4.16 (b) 方法:

(# of days in standard year)/365 + (# of days in leap year)/366

还有许多其他实现,它们似乎都在该库中实现。

请注意,这是对我之前的帖子的附加答案:Julia/Dates:将时间跨度从“天”转换为“年”或“Float64”,这在这里可能更合适。


推荐阅读