ruby中的当前时间计算

ruby中的当前时间计算,ruby,time,Ruby,Time,我需要确定一天中的当前时间,并让用户知道该执行特定任务了。例如,如果时间介于小时数(例如,上午6点到下午12点)之间,则用户应执行特定任务。如果时间在这之后(下午1点到6点之间),用户应该执行另一项任务,如果时间超出这些时间,他们应该执行其他任务 我对ruby的了解还不够,所以我还没有发布一个到目前为止我一直在编写的代码示例。我所知道的就是如何用t=time来确定当前时间是多少。现在,如何确定时间是否在特定的小时之间,我不知道的是如何用一种方法来确定小时是否在给定的时间之间,以告诉用户执行任务

我需要确定一天中的当前时间,并让用户知道该执行特定任务了。例如,如果时间介于小时数(例如,上午6点到下午12点)之间,则用户应执行特定任务。如果时间在这之后(下午1点到6点之间),用户应该执行另一项任务,如果时间超出这些时间,他们应该执行其他任务

我对ruby的了解还不够,所以我还没有发布一个到目前为止我一直在编写的代码示例。我所知道的就是如何用t=time来确定当前时间是多少。现在,如何确定时间是否在特定的小时之间,我不知道的是如何用一种方法来确定小时是否在给定的时间之间,以告诉用户执行任务


谢谢你的帮助

首先,了解一下

当你对它感到满意时,你会发现做下面这样的比较很简单

2.3.1 :001 > n = Time.now.hour
 => 17 
2.3.1 :002 > n.between? 13, 18 #1 pm - 6 pm
 => true 
2.3.1 :004 > n.between? 6, 12
 => false 
注意:中间来自模块

您可以从玩下面的代码片段开始

2.3.1 :001 > def task_for_night
2.3.1 :002?>   puts "night task started"
2.3.1 :003?>   end
 => :task_for_night 
2.3.1 :004 > def task_for_day
2.3.1 :005?>   puts "day time"
2.3.1 :006?>   end
2.3.1 :021 > def assign_task
2.3.1 :022?>   (Time.now.hour.between? 6,12) ? task_for_night : task_for_day
2.3.1 :023?>   end
 => :assign_task 
2.3.1 :024 > assign_task
day time
 => nil 
获取当前时间(仅小时:%H)并将其转换为整数

time = Time.now.strftime('%H').to_i
# 15
并检查嵌套三元运算符(条件运算符)中的时间条件

with是您想要执行的操作的完美语法:

case Time.now.hour
when (6..12)
  puts "Task A"
when (13..18)
  puts "Task B"
else
  puts "Free time"
end
您还可以使用:

现在你可以做更多的事情:

def what_should_i_do_at(time)
  case time.hour
  when 6..12 then 'Do morning task'
  when 13..18 then "Do afternoon's task"
  else "Do something else"
  end
end

> what_should_i_do_at(Time.now+60*60) # plus 1 hour
#=> "Do afternoon's task" 

谢谢你,我只学了两周ruby,不知道如何利用时间,这对我有很大帮助<代码>时间不是时间,而是一小时。无需将时间转换为字符串,只需使用
time.now.hour
。最后,不要使用双三元组,这很难阅读。啊,我迟到了:(+1来自我:)
def what_should_i_do_now?
  case Time.now.hour
  when 6..12 then 'Do morning task'
  when 13..18 then "Do afternoon's task"
  else "Do something else"
  end
end
def what_should_i_do_at(time)
  case time.hour
  when 6..12 then 'Do morning task'
  when 13..18 then "Do afternoon's task"
  else "Do something else"
  end
end

> what_should_i_do_at(Time.now+60*60) # plus 1 hour
#=> "Do afternoon's task"