我需要确定当前的当前时间,让用户知道是时候做一项特定的任务。例如,如果时间在小时数之间(例如,在早上6点到下午12点之间),则用户应该完成某项任务。如果时间在那之后(下午1点到6点之间),用户应该完成另一项任务,如果时间超出这些时间,他们应该做其他事情。
我不太了解ruby,以便发布我迄今为止所做过的代码示例。我所知道的是如何确定t = Time.now的当前时间以及如何确定时间是否在某些小时之间,我不知道如何将其放入方法中以确定是否hrs在给定时间之间告诉用户执行任务。
任何帮助表示赞赏。
答案 0 :(得分:2)
首先,熟悉usage of Time class in ruby。
当你对它感到满意时,你会发现像下面这样的比较很简单。
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
注意:介于两者之间来自Comparable模块
你可以从下面的片段开始玩。
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
答案 1 :(得分:1)
case
的ranges是您想要做的完美语法:
case Time.now.hour
when (6..12)
puts "Task A"
when (13..18)
puts "Task B"
else
puts "Free time"
end
答案 2 :(得分:0)
获取当前时间(仅限小时:%H)并将其转换为整数。
(time.between? 6,12) ? "Do morning's task" : (time.between? 13,18) ? "Do afternoon's task" : "Do something else"
# Do afternoon's task
并检查嵌套三元运算符(条件运算符)中的时间条件
$array=json_decode($data,true); //data is your json_encoded data
foreach($array as $key=>$value)
{
echo $key . ' ' . $value . PHP_EOL;
}
答案 3 :(得分:0)
您也可以使用#case
:
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"