7

I need the current week number, if I'm not totally mistaken it's week 51 right now? However when testing it in the console I get this.

Time.now
=> 2013-12-19 11:08:25 +0100
Time.now.strftime('%U')
=> "50"

Date.today
=> Thu, 19 Dec 2013
Date.today.strftime("%U").to_i
=> 50

Why is that?

Philip
  • 6,827
  • 13
  • 75
  • 104

3 Answers3

14

Time.now.strftime('%V') will give you the week number according to ISO 8601.

8
why is that?

according to %U or %W, The days in the year before the first week are in week 0 (00..53).

with %V (as @Graeme McLean wrote), The days in the year before the first week are in the last week of the previous year (01..53).

From here.

user2503775
  • 4,267
  • 1
  • 23
  • 41
4

Hmm, I'm unsure as to why it is that way, but to get the correct one using Ruby, I use this:

require 'Date'

week_number = Date.today.cweek #=> 51
andy
  • 2,369
  • 2
  • 31
  • 50
  • In case anyone lands here looking for what I was looking for (even/odd weeks in Ruby on Rails), the above answer is helpful. You can then do `week_number.even?` or `week_number.odd?`. – Tass Oct 07 '16 at 14:47