ruby - 如何将 270921sec 转换为天 + 小时 + 分钟 + 秒? ( ruby )

标签 ruby time

我有几秒钟。比方说 270921。我如何显示该数字表示它是 xx 天、yy 小时、zz 分钟、ww 秒?

最佳答案

可以使用 divmod 非常简洁地完成:

t = 270921
mm, ss = t.divmod(60)            #=> [4515, 21]
hh, mm = mm.divmod(60)           #=> [75, 15]
dd, hh = hh.divmod(24)           #=> [3, 3]
puts "%d days, %d hours, %d minutes and %d seconds" % [dd, hh, mm, ss]
#=> 3 days, 3 hours, 15 minutes and 21 seconds

您可能可以通过使用 collectinject 发挥创意来进一步 DRY 它,但是当核心逻辑是三行时,它可能有点矫枉过正。

关于ruby - 如何将 270921sec 转换为天 + 小时 + 分钟 + 秒? ( ruby ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2310197/

相关文章:

ruby - RVM 通过 repo 文件自动检测 Ruby 版本的功能在 VSCode 登录 shell 终端中不起作用

mysql - SUM 时间值 MySQL

Android Studio中的日期和时间(科林语言)

ruby-on-rails - Ruby on Rails 中的@变量

html - 如何从 html 文件中提取 "pull"特定数据并处理数据

arrays - 确定字符串是否包含 ruby​​ 数组中存在的任何值

ruby-on-rails - 不支持从 define_method() 定义的方法隐式传递 super 参数

c++ - 在 C++ 中将 `time_t` 转换为十进制年份

ruby - Time.advance 记录在哪里?

python - 如何从设定时间中减去当前时间