julia - 在 Julia 中将经过的时间转换为小时:分钟:秒
解决方案
方法一:
此代码遵循 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
"""
方法二:
@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
如果您正在进行长时间的模拟,那可能会有所帮助。
推荐阅读
- php - Laravel GET 请求结果带有额外的“?” 特点
- python - 合并两个无与伦比的元素排序列表,在python3中保持它们的相对顺序
- angular - Firebase 身份验证 - 防止访问未知用户
- visual-studio - 如何在 Visual Studio 2017 中创建 .ipa 文件?
- vue.js - Vue js显示2个表值
- javascript - 计算小于或等于数字的正值之和
- spring-boot - 如何在 Zuul PRE_TYPE 过滤器中发送 HTTP 响应
- c++ - C++ Opencv:尝试打印 Mat 值,但得到空打印
- sql - 查询大型 DataSet .NET Core 进行序列化
- android - 在数据绑定时设置 customView 变量