Question

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?

Was it helpful?

Solution

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

OTHER TIPS

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.

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
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top