我还有几秒钟.比如说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来创作,从而让它更加干涸,但当核心逻辑是三行时,这可能会有些过分.

Ruby相关问答推荐

这是按引用传递/值传递的误解,导致此方法无法按预期输出吗?

当 node 名称是/包含整数时,使用 Nokogiri 解析非 XML 文档

当我在 Ruby 中围绕最后一个字符拆分时,如何拆分字符串?

使用 Ruby,是否可以将 BigDecimal("1") / BigDecimal("3") 打印为 0.3333333333333... 到任意长度?

字符串长度多显示一个字符 - ruby

生成带有小写字母和数字的唯一随机字符串

如何以不同 colored颜色 输出我的 ruby​​ 命令行文本

如何将两周时间添加到 Time.now?

Python 是否在 Ruby 中进行类似于字符串 #{var}的变量插值?

CSV.read 第 x 行的非法引用

为什么 Ruby 使用 respond_to?而不是 responds_to?

如何合并散列数组以获取值数组的散列

Ruby 哈希默认值行为

Ruby:module、require和include

在ruby中将字符串转换为十进制数

默认情况下需要查找的路径是什么?

如何理解 class_eval() 和 instance_eval() 的区别?

使用哈希值呈现 ERB 模板

您的 Ruby 版本是 2.0.0,但您的 Gemfile 指定了 2.1.0

如何计算 Ruby 数组中的重复元素