ruby - ruby 中的时间操作

标签 ruby datetime time

我是 ruby 新手。我正在尝试计算给定时间段内的秒数。我有 HH:MM:SS 格式的开始时间和结束时间。

我可以将变量声明为 Time 类的对象并执行计算吗? 示例:

start_time='15:00:12'
end_time='19:32:12'
a=Time.new(start_time)
b=Time.new(end_time)
duration_seconds=a-b

最佳答案

这是 Ruby 中的代码

由于 Time.new 需要诸如年、月、日、小时、分钟、秒之类的参数 - 我将当前时间用于前 3 个参数,并将 OP 的字符串参数中的值用于其余 3 个参数

获取两个时间之间的差异 - 我使用了 to_i 方法,该方法从 Time 实例代表的 Epoch 返回秒数

string_start_time ='15:00:12'
start_time_parts = string_start_time.split(":").collect{ |y| y.to_i }
start_time = Time.new(Time.now.year, Time.now.month, Time.now.day, start_time_parts[0], start_time_parts[1], start_time_parts[2])
p start_time

string_end_time='19:32:12'
end_time_parts = string_end_time.split(":").collect{ |y| y.to_i }
end_time = Time.new(Time.now.year, Time.now.month, Time.now.day, end_time_parts[0], end_time_parts[1], end_time_parts[2])
p end_time

p duration_seconds = end_time.to_i - start_time.to_i

注意:需要一些代码重构来提取函数以从 HH:MM:SS 中创建时间,我有重复的代码

以上代码的输出为

2015-07-14 15:00:12 +0530
2015-07-14 19:32:12 +0530
16320
[Finished in 0.1s]

关于ruby - ruby 中的时间操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31390938/

相关文章:

ruby - Sinatra 中的嵌套布局

arrays - Ruby 根据多个条件对数字数组的数组进行排序

ruby-on-rails - 在Redmine中测试

java - 创建一个每 x 秒执行一次的方法

python - 更简单的递归代码比同一事物的迭代版本运行得更慢

ruby - 用另一个字符替换 Ruby 中的字符

r - 如何展平/合并重叠的时间段

java - Joda-Time 时区偏移 10 小时

php - 在 PHP 中插入当前时间时出错

python - 如何将 Python 日期时间对象的时间部分转换为自一天开始以来的总秒数