Julia 朱莉娅:不同时间段之间的转换

Julia 朱莉娅:不同时间段之间的转换,julia,Julia,充分披露:我只使用朱莉娅一天左右,所以现在提问可能还为时过早 我不太了解Dates模块的句点类型的实用性。假设我有两次,我想找出它们之间的分钟数。看起来自然的做法是减去时间,然后将结果转换为分钟。我可以应付没有一个很小的构造函数(这对我的Python大脑来说似乎是最自然的),但它似乎convert应该能够做些什么 从毫秒到整数再到分钟的“解决方案”似乎有点恶心。做这件事的更好/正确/惯用的方法是什么?(我做了RTFM,但可能答案就在那里,我错过了。) (很抱歉,我选择了一个引人窃笑的时间间隔。我

充分披露:我只使用朱莉娅一天左右,所以现在提问可能还为时过早

我不太了解Dates模块的句点类型的实用性。假设我有两次,我想找出它们之间的分钟数。看起来自然的做法是减去时间,然后将结果转换为分钟。我可以应付没有一个很小的构造函数(这对我的Python大脑来说似乎是最自然的),但它似乎
convert
应该能够做些什么

从毫秒到整数再到分钟的“解决方案”似乎有点恶心。做这件事的更好/正确/惯用的方法是什么?(我做了RTFM,但可能答案就在那里,我错过了。)


(很抱歉,我选择了一个引人窃笑的时间间隔。我碰巧把两个朋友的生日转换成了小时和分钟,而没有真正去想它。)

问得好;看来我们应该加上它!(披露:我制作了
日期
模块)

实际上,我们曾经有过转换,但后来出于某种原因,它们被删除了(我认为它围绕着不精确的转换是否应该抛出错误而展开,最近在int/float的Base中已经清理了很多)。我认为把它们重新添加进去绝对有意义。事实上,我们还有一些其他的操作,所以很明显它们是有用的


和往常一样,这也是一个谁有时间编写/测试/提交的问题,希望这是由对功能有真正需求的人推动的。如果你有雄心壮志,请随时提交PR

另外,对于这个不真实的答案,我感到很抱歉,但希望它能提供一些您所寻找的背景。
y, m, d = (2015, 03, 16)
hr1, min1, sec1 = (8, 14, 00)
hr2, min2, sec2 = (9, 23, 00)
t1 = DateTime(y, m, d, hr1, min1, sec1)
t2 = DateTime(y, m, d, hr2, min2, sec2)
# println(t2 - t1)  # 4140000 milliseconds
# Minute(t2 - t1)  # ERROR: ArgumentError("Can't convert Millisecond to Minute")
# minute(t2 - t1)  # ERROR: `minute` has no method matching
                   # minute(::Millisecond)
# convert(Minute, (t2-t1))  # ERROR: `convert` has no method matching
                            # convert(::Type{Minute}, ::Millisecond)

delta_t_ms = convert(Int, t2 - t1)

function ms_to_min(time_ms)
    MS_PER_S = 1000
    S_PER_MIN = 60
    # recall that division is floating point unless you use div function
    return div(time_ms, (MS_PER_S * S_PER_MIN))
end

delta_t_min = ms_to_min(delta_t_ms)
println(Minute(delta_t_min))  # 69 minutes