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.