Case in point, this morning I was writing a unit test in Java, and needed to use two dates in my test code, one that was further in the future than the other. In Java, this looks something like this:
Date now = new Date();
Calendar calendar = new GregorianCalendar();
calendar.setTime(now);
calendar.add(Calendar.HOUR, 1);
Date oneHourFromNow = calendar.getTime();
I know I don't need to explicitly set the calendar to 'now', however, I use the 'now' reference in the tests, so it seemed to be slightly more correct and explicit to do so. Further, the only reason for this setup code is to use the now and oneHourFromNow references in my tests.
In Rails, I would simply reference:
Time.now
when I wanted to get the current time, and then use the nice time-related functions that Rails adds:
Time.now + 1.hour
when I needed a time that was in the future. If I wanted the exact same semantics as the Java code, I suppose I could do this:
now = Time.now
one_hour_from_now = Time.now + 1.hour
but that doesn't seem to add much in the way of comprehensibility, so I'd likely skip that altogether.
So, in reality, what would take me five lines of code in Java, essentially takes zero in Rails, which, as I calculate things, is infinitely better.
8 comments:
Does that handle if the hour addition extends across a spring ahead / fall back time change? If so, that's pretty sweet!
Yup, sure does. It's easy to try this for yourself from the Rails console. Here in Canada our next change is on November 7th at 2:00am. So...
>> time = Time.parse '2010-11-7 01:00'
=> Sun Nov 07 01:00:00 -0700 2010
>> time + 1.hour
=> Sun Nov 07 01:00:00 -0800 2010
1.hour.from_now is even shorter and easier to read.
Thanks for that Stephan!
That is really nice to hear. thank you for the update and good luck. wofs
You managed to hit the nail upon the top and also defined out the whole thing without having side effect , people could take a signal. Will likely be back to get more. Thanks
Tangki Panel
You’ve got some interesting points in this article. I would have never considered any of these if I didn’t come across this. Thanks!. UAE Embassy attestation
Post a Comment