在Julia中,将经过的时间转换为小时:分钟:秒

在Julia中,将经过的时间转换为小时:分钟:秒,julia,Julia,将秒转换为小时:分钟:秒对于Python来说有多种解决方法 在朱莉娅身上,人们会怎么做呢?方法1: 这段代码遵循Brandon Rhodes在原始问题的链接上用Python给出的答案。它回答了原来的问题 优点:简单 缺点:对于长时间模拟运行,输出的格式将不如此模拟运行后给出的方法好 using Printf start = time() sleep(65.129) # 65.129 seconds elapsed = time() - start (minutes, seconds) =

将秒转换为小时:分钟:秒对于Python来说有多种解决方法


在朱莉娅身上,人们会怎么做呢?

方法1:

这段代码遵循Brandon Rhodes在原始问题的链接上用Python给出的答案。它回答了原来的问题

优点:简单

缺点:对于长时间模拟运行,输出的格式将不如此模拟运行后给出的方法好

using Printf

start = time()
sleep(65.129)  # 65.129 seconds
elapsed = time() - start

(minutes, seconds) = fldmod(elapsed, 60)
(hours, minutes) = fldmod(minutes, 60)

@printf("%02d:%02d:%0.2f", hours, minutes, seconds)

"""========== The expected output is ==========
00:01:5.16
"""
方法2

@crstnbr通过
canonacalize
功能解决了类似的问题。我在Julia 1.0.0文档中没有看到它,但我在Julia源代码中找到了链接

它具有优雅地处理短时间段和长时间段的整洁特性

优点:为长时间运行提供了一种有用的格式

缺点:似乎不在当前的Julia 1.0.0文档中,可能很难记住

julia> start = now(); sleep(1.23); elapsed = now() - start;
julia> canonicalize(Dates.CompoundPeriod(elapsed))
1 second, 246 milliseconds

julia> canonicalize(Dates.CompoundPeriod(elapsed*1000000))
2 weeks, 10 hours, 6 minutes, 40 seconds

如果您正在进行长时间模拟,这可能会有所帮助。

方法1:

这段代码遵循Brandon Rhodes在原始问题的链接上用Python给出的答案。它回答了原来的问题

优点:简单

缺点:对于长时间模拟运行,输出的格式将不如此模拟运行后给出的方法好

using Printf

start = time()
sleep(65.129)  # 65.129 seconds
elapsed = time() - start

(minutes, seconds) = fldmod(elapsed, 60)
(hours, minutes) = fldmod(minutes, 60)

@printf("%02d:%02d:%0.2f", hours, minutes, seconds)

"""========== The expected output is ==========
00:01:5.16
"""
方法2

@crstnbr通过
canonacalize
功能解决了类似的问题。我在Julia 1.0.0文档中没有看到它,但我在Julia源代码中找到了链接

它具有优雅地处理短时间段和长时间段的整洁特性

优点:为长时间运行提供了一种有用的格式

缺点:似乎不在当前的Julia 1.0.0文档中,可能很难记住

julia> start = now(); sleep(1.23); elapsed = now() - start;
julia> canonicalize(Dates.CompoundPeriod(elapsed))
1 second, 246 milliseconds

julia> canonicalize(Dates.CompoundPeriod(elapsed*1000000))
2 weeks, 10 hours, 6 minutes, 40 seconds

如果您正在进行长时间的模拟,这可能会有所帮助。

不是您所要求的,但可能仍然有用:

julia> using Dates

julia> start = now(); sleep(1.23); elapsed = now() - start;

julia> canonicalize(Dates.CompoundPeriod(elapsed))
1 second, 231 milliseconds

请参阅。

不是您真正想要的,但可能仍然有用:

julia> using Dates

julia> start = now(); sleep(1.23); elapsed = now() - start;

julia> canonicalize(Dates.CompoundPeriod(elapsed))
1 second, 231 milliseconds

请参阅。

有很多方法可以做到这一点。这本维基百科展示了一些很好的工具。另请看,我很惊讶没有为时间增量提供内置格式。@rickhg12hs谢谢链接。@crstnbr谢谢链接。有很多方法可以做到这一点。这本维基百科展示了一些很好的工具。另请看,我很惊讶没有为时间增量提供内置格式。@rickhg12hs谢谢链接。@crstnbr谢谢链接。使用
now()
被认为比
time()
更“朱利安”,还是只是偏好问题?
now()
返回一个
日期。DateTime
仅在
使用日期之后可用
time()
返回一个整数(微秒)。从这个意义上讲,
time()
更简单/低级。很好的解释。谢谢使用
now()
是否被认为比使用
time()
更像“朱利安”,或者这只是一个偏好问题?
now()
返回一个
日期。DateTime
仅在
使用日期之后可用
time()
返回一个整数(微秒)。从这个意义上讲,
time()
更简单/低级。很好的解释。谢谢