【问题标题】:Compare approximately time and date in Ruby比较 Ruby 中的大致时间和日期
【发布时间】:2017-03-24 15:41:16
【问题描述】:

我有 2 个带有时间和日期的变量:

var1 = "2017-03-24 10:37:59"
var2 = "2017-03-24 10:38:12"

我需要想出算法来比较这两个变量,但如果相差 2 分钟应该没问题。 在此特定示例中,var1 == var2 is true,因为差异小于 2 分钟。

【问题讨论】:

  • 你可以试试这个gem.
  • 当询问您是否需要向我们展示您尝试过的内容时,请提出一个具体的问题。现在看来您并没有尝试并希望我们为您编写代码。

标签: ruby algorithm date time


【解决方案1】:

Time#to_i 将 Time 实例强制为秒(自 Epoch 起),因此您只需实例化 Time 并检查它们之间的距离,例如2分钟:

require 'time'
(Time.parse('2017-03-24 10:37:59').to_i - Time.parse('2017-03-24 10:38:12').to_i).abs <= 2*60
# true

【讨论】:

  • 差异应该以秒为单位或与120比较
  • @EricDuminil to_i 和/或 to_f 可以省略:时间 - other_time → 浮动
【解决方案2】:

使用Time.parse

 require 'time'
 ((Time.parse(var1) - Time.parse(var2)) / 60).abs < 2
 => true

【讨论】:

  • 请注意,这是有效的,因为Time#- 返回一个浮点数。对于整数,这可能会导致奇怪的错误,因为 -61/60-2
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-20
  • 1970-01-01
  • 2012-04-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多