# Getting dates from weeknumber

**URL:** <https://www.ruby-forum.com/t/getting-dates-from-weeknumber/90218>\
**Category:** Rails\
**Created:** [March 26, 2007, 8:53pm UTC](https://www.ruby-forum.com/t/getting-dates-from-weeknumber/90218 "2007-03-26T20:53:23Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![bitterbal](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/838e76/32.png) [@bitterbal](https://www.ruby-forum.com/u/bitterbal)\
**Post date:** [March 26, 2007, 8:53pm UTC](https://www.ruby-forum.com/t/getting-dates-from-weeknumber/90218/1 "2007-03-26T20:53:23Z")

</div>

If I have a weeknumber and a year, is there an easy way to get the  
dates that fall in this weeknumber or the first day of that week (the  
other I can calculate).

regards

---

<div class="post-metadata">

**Author:** ![bitterbal](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/838e76/32.png) [@bitterbal](https://www.ruby-forum.com/u/bitterbal)\
**Post date:** [March 26, 2007, 9:05pm UTC](https://www.ruby-forum.com/t/getting-dates-from-weeknumber/90218/2 "2007-03-26T21:05:25Z")

</div>

Found it myself 🙂

Date.neww(2007,5,6)

Input year, week and daynumber all in the commercial calendar and you  
get a date back.

---

<div class="post-metadata">

**Author:** ![bitterbal](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/838e76/32.png) [@bitterbal](https://www.ruby-forum.com/u/bitterbal)\
**Post date:** [March 26, 2007, 9:14pm UTC](https://www.ruby-forum.com/t/getting-dates-from-weeknumber/90218/3 "2007-03-26T21:14:26Z")

</div>

On Mar 26, 1:49 pm, “bitterbal” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> If I have a weeknumber and a year, is there an easy way to get the  
> dates that fall in this weeknumber or the first day of that week (the  
> other I can calculate).

require ‘date’

def sunday\_before( d )  
d - d.wday  
end

def start\_of\_week( week\_number, year )  
sunday\_before( Date.new( year, 1, 1 ) ) + (week\_number \* 7)  
end

puts start\_of\_week( 0, 2007 )  
puts start\_of\_week( 1, 2007 )  
puts start\_of\_week( 51, 2007 )  
puts start\_of\_week( 52, 2007 )  
puts start\_of\_week( 53, 2007 )
