Shp*_*ord 2 ruby comparison if-statement
我目前有这个if声明:
if Time.now.day == 1 and Time.now.hour == 0 and Time.now.minute == 0 and Time.now.second == 0
Run Code Online (Sandbox Code Playgroud)
有没有更简洁的方法来做到这一点?
您可以使用Time#to_a将您的时间转换为数组(秒,分钟,小时,日,月,年,星期日,日,星期日,区域):
Time.now.to_a # => [20, 57, 16, 30, 11, 2010, 2, 334, false, "CET"]
Run Code Online (Sandbox Code Playgroud)
然后切掉你想要匹配的部分:
Time.now.to_a[0,4] # => [20, 57, 16, 30]
Run Code Online (Sandbox Code Playgroud)
您的特定支票可以简洁如下:
if Time.now.to_a[0,4] == [0,0,0,1]
Run Code Online (Sandbox Code Playgroud)