Dates, Time, and Formatting
Date Objects
Ruby's Date class represents calendar dates without depending on the current clock.
date object
A `Date` stores year, month, and day values and can answer calendar questions.
Date Objects
date_objects.rb
Replay: real traced execution (multi-file project)
require "date"
year = 2025
date = Date.new(year, 5, 28)
iso = date.iso8601
day_of_year = date.yday
puts "date=#{iso}"
puts "year=#{date.year}"
puts "day_of_year=#{day_of_year}"
require "date"
year = 2024
date = Date.new(year, 5, 28)
iso = date.iso8601
day_of_year = date.yday
puts "date=#{iso}"
puts "year=#{date.year}"
puts "day_of_year=#{day_of_year}"
require "date"
year = 2026
date = Date.new(year, 5, 28)
iso = date.iso8601
day_of_year = date.yday
puts "date=#{iso}"
puts "year=#{date.year}"
puts "day_of_year=#{day_of_year}"
year ← 2025, date ← 2025-05-28, iso ← 2025-05-28, day_of_year ← 148
1require "date"23year→ 2025 = 2025 #@year=2024, 20264date→ 2025-05-28 = Date.new(year2025, 5, 28)56iso→ 2025-05-28 = date.iso86012025-05-287day_of_year→ 148 = date.yday14889puts "date=#{iso2025-05-28}"10puts "year=#{date.year2025}"11puts "day_of_year=#{day_of_year148}"outputdate=2025-05-28 year=2025 day_of_year=148
year ← 2024, date ← 2024-05-28, iso ← 2024-05-28, day_of_year ← 149
1require "date"23year→ 2024 = 20244date→ 2024-05-28 = Date.new(year2024, 5, 28)56iso→ 2024-05-28 = date.iso86012024-05-287day_of_year→ 149 = date.yday14989puts "date=#{iso2024-05-28}"10puts "year=#{date.year2024}"11puts "day_of_year=#{day_of_year149}"outputdate=2024-05-28 year=2024 day_of_year=149
year ← 2026, date ← 2026-05-28, iso ← 2026-05-28, day_of_year ← 148
1require "date"23year→ 2026 = 20264date→ 2026-05-28 = Date.new(year2026, 5, 28)56iso→ 2026-05-28 = date.iso86012026-05-287day_of_year→ 148 = date.yday14889puts "date=#{iso2026-05-28}"10puts "year=#{date.year2026}"11puts "day_of_year=#{day_of_year148}"outputdate=2026-05-28 year=2026 day_of_year=148