date - 在 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,但是有没有办法利用内置函数来做到这一点?
解决方案
此功能可在以下位置找到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”,这在这里可能更合适。
推荐阅读
- sqlite - Javafx:清除 SQLite 查询的 ResultSet,这样它就不会保留以前的结果
- powershell - 在 Windows 10 Powershell 中通过 F7 使命令历史弹出窗口工作
- javascript - 如何在javascript中获取频率值?
- json - 引起:org.apache.camel.InvalidPayloadException:
- sublimetext3 - Sublime Text 3 - 包控制 - 安装 | ImportError:没有名为“package_control”的模块
- javascript - 如何在javascript中计算本月和下个月的时间?
- c# - 更新标签文本仅使用给定文本的一部分
- angular - 如何在另一个应用程序中使用在一个角度应用程序中定义的自定义 html 元素
- tensorflow - 验证和训练期间 TensorFlow 中的批量标准化
- python - 下载google sheet,需要我先登录