Ruby 日期 & 时间学习笔记

日期

在 Ruby 中,Date 类可以用来表示日期。我们可以通过以下方式创建一个 Date 对象:

rubyCopy Code
require 'date' today = Date.today

这会创建一个表示当前日期的 Date 对象。

获取日期信息

我们可以使用 Date 对象的各种方法来获取日期相关的信息,例如年份、月份、日等。

rubyCopy Code
today.year # 获取当前年份 today.month # 获取当前月份 today.day # 获取当前日期(天)

计算日期

我们也可以使用 Date 对象进行日期计算,例如计算明天的日期:

rubyCopy Code
tomorrow = today.next_day

还可以计算之后的某一天:

rubyCopy Code
future_date = today + 7

比较日期

我们可以通过比较运算符来比较两个日期的大小:

rubyCopy Code
date1 = Date.parse('2023-06-01') date2 = Date.parse('2023-06-02') puts date1 < date2 # 输出 true

时间

在 Ruby 中,Time 类可以用来表示时间。我们可以通过以下方式创建一个 Time 对象:

rubyCopy Code
current_time = Time.now

这会创建一个表示当前时间的 Time 对象。

获取时间信息

我们可以使用 Time 对象的各种方法来获取时间相关的信息,例如小时、分钟、秒等。

rubyCopy Code
current_time.hour # 获取当前小时数 current_time.min # 获取当前分钟数 current_time.sec # 获取当前秒数

计算时间

我们也可以使用 Time 对象进行时间计算,例如计算明天此时的时间:

rubyCopy Code
tomorrow = current_time + 24 * 60 * 60

还可以计算之后的某个时间点:

rubyCopy Code
future_time = current_time + 60 * 60

比较时间

我们可以通过比较运算符来比较两个时间的大小:

rubyCopy Code
time1 = Time.parse('2023-06-01 01:00:00') time2 = Time.parse('2023-06-01 02:00:00') puts time1 < time2 # 输出 true

实例

下面是一个实例,用于计算今天到指定日期还有多少天:

rubyCopy Code
require '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 方法来将两个日期对象转换为整数,然后用目标日期减去当前日期得出相差天数。最后将得到的天数输出。