Ruby 日期 & 时间学习笔记
日期
在 Ruby 中,Date 类可以用来表示日期。我们可以通过以下方式创建一个 Date 对象:
rubyCopy Coderequire 'date'
today = Date.today
这会创建一个表示当前日期的 Date 对象。
获取日期信息
我们可以使用 Date 对象的各种方法来获取日期相关的信息,例如年份、月份、日等。
rubyCopy Codetoday.year # 获取当前年份
today.month # 获取当前月份
today.day # 获取当前日期(天)
计算日期
我们也可以使用 Date 对象进行日期计算,例如计算明天的日期:
rubyCopy Codetomorrow = today.next_day
还可以计算之后的某一天:
rubyCopy Codefuture_date = today + 7
比较日期
我们可以通过比较运算符来比较两个日期的大小:
rubyCopy Codedate1 = Date.parse('2023-06-01')
date2 = Date.parse('2023-06-02')
puts date1 < date2 # 输出 true
时间
在 Ruby 中,Time 类可以用来表示时间。我们可以通过以下方式创建一个 Time 对象:
rubyCopy Codecurrent_time = Time.now
这会创建一个表示当前时间的 Time 对象。
获取时间信息
我们可以使用 Time 对象的各种方法来获取时间相关的信息,例如小时、分钟、秒等。
rubyCopy Codecurrent_time.hour # 获取当前小时数
current_time.min # 获取当前分钟数
current_time.sec # 获取当前秒数
计算时间
我们也可以使用 Time 对象进行时间计算,例如计算明天此时的时间:
rubyCopy Codetomorrow = current_time + 24 * 60 * 60
还可以计算之后的某个时间点:
rubyCopy Codefuture_time = current_time + 60 * 60
比较时间
我们可以通过比较运算符来比较两个时间的大小:
rubyCopy Codetime1 = Time.parse('2023-06-01 01:00:00')
time2 = Time.parse('2023-06-01 02:00:00')
puts time1 < time2 # 输出 true
实例
下面是一个实例,用于计算今天到指定日期还有多少天:
rubyCopy Coderequire 'date'
today = Date.today
target_date = Date.new(2023, 12, 31)
days_left = (target_date - today).to_i
puts "距离 #{target_date} 还有 #{days_left} 天。"
执行结果:
Copy Code距离 2023-12-31 还有 210 天。
上述代码中,我们使用了 Date 类的 to_i 方法来将两个日期对象转换为整数,然后用目标日期减去当前日期得出相差天数。最后将得到的天数输出。