Quantcast
Channel: Active questions tagged ruby - Stack Overflow
Viewing all articles
Browse latest Browse all 4623

Ruby Date Calculation

$
0
0

This is not a problem so much as something I noticed and was wondering if someone could explain it to me.

If I use inline-type syntax I get two different, interchanging, answers:

d = (Date.today >> 3) - (d.day + 1)#=> #<Date: 2013-06-01 ((2456445j,0s,0n),+0s,2299161j)>d = (Date.today >> 3) - (d.day + 1)#=> #<Date: 2013-06-03 ((2456447j,0s,0n),+0s,2299161j)>d = (Date.today >> 3) - (d.day + 1)#=> #<Date: 2013-06-01 ((2456445j,0s,0n),+0s,2299161j)>d = (Date.today >> 3) - (d.day + 1)#=> #<Date: 2013-06-03 ((2456447j,0s,0n),+0s,2299161j)>

If I do the same on multiple lines I get the same correct answer every time:

d = Date.today#=> #<Date: 2013-03-05 ((2456357j,0s,0n),+0s,2299161j)>d = d >> 3#=> #<Date: 2013-06-05 ((2456449j,0s,0n),+0s,2299161j)>d = d - d.day + 1#=> #<Date: 2013-06-01 ((2456445j,0s,0n),+0s,2299161j)>d = Date.today#=> #<Date: 2013-03-05 ((2456357j,0s,0n),+0s,2299161j)>d = d >> 3#=> #<Date: 2013-06-05 ((2456449j,0s,0n),+0s,2299161j)>d = d - d.day + 1#=> #<Date: 2013-06-01 ((2456445j,0s,0n),+0s,2299161j)>

Any ideas why this would happen? I am just interested to understand because, the way I see it, both ways should always return the same answer.


Viewing all articles
Browse latest Browse all 4623


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>