【发布时间】:2017-02-21 04:11:53
【问题描述】:
我有一个问题
我想比较两个时间对象,并希望始终在第一次通过比较:
def compare_time(时间) @memory_time ||= Time.new(1999,01,01) 如果时间 > @memory_time 提出“通过比较” 结尾 @memory_time = Time.now 结尾我使用 Time.new(1999,01,01) 作为无穷小时间,但我认为语法(提示)很丑陋,并不总是有效。
所以我想知道是否有任何 CONSTANT 或其他更好的方法可以在 ruby 中获得无限小的时间?
【问题讨论】:
-
请解释您所说的无穷小时间是什么意思。我知道微积分中的表达式,它(通俗地说)意味着“无限接近零”,但这仅适用于时间间隔,而不适用于您似乎正在使用的时间点。
-
我希望它比任何时间对象都小的无穷小时间,所以我可以让任何时间在我第一次调用函数时通过“time > @memory_time”
-
这对我来说也没有多大意义。大多数计算机无法设置比 Unix Epoch 启动更早的时间,因此 Time.at 在这种情况下可能会派上用场。
Time.at(0) == 1970-01-01 00:00:00. -
@joanbm,你是对的,它满足我的功能需要,你想在回答对话框中回复吗?
-
@joanbm:在 Ruby 中,您还可以使用带有负数的
Time.at来表示纪元之前的日期。 Tsao 似乎在寻找一种方法来表示表示 负无穷大 的时间点,所以如果 Ruby 有一些东西来表示最小的整数,那么这可以解决问题 - 但 Ruby 没有。我建议 Tsao 手动计算自大爆炸以来的秒数,并用这个数字的负值定义一个常数。至少如果Hartle-Hawking 的假设是正确的,这就足够了。