Week numbers in Ruby
How to get the week number from a date
To get the ISO week number (1-53), use date.strftime('%-V')
.
date is a Date or DateTime object.
To get the corresponding four-digit year (e.g. 2023), use date.strftime('%G')
.
How to get the date from a week number
To get a Date object representing the start of the week (Monday), use Date.parse("#{year}W#{week}")
.
year is a four-digit year, and week is an ISO week number (1-53).
Read more about date.strftime() in the Ruby manual.
How to get the number of weeks in a year
To get the number of ISO weeks (i.e. the number of the last week) in a year, use Date.new(year, 12, 28).strftime('%-V')
.
year is an integer four-digit year.
This is based on the fact that the last week of the year always includes 28 December.