newbie question on how to subtract two dates.

R

Ruby Ruby

--0-2040115834-1072473489=:21116
Content-Type: text/plain; charset=us-ascii


I have a file with a file name of the form filename.yymmdd, where yy=two digits year, mm=two digits month and dd=two digits day. For example, perf.030906 indicates 03=year 2003, 09=September and 06=the sixth day of the month (September 06, 2003).

This file contains performance data collected during the day and each system contains one file per day. We have few dozen systems collecting this data.

Every days, around 1:00 AM I have to take the file for the previous day and copy it to a central server where the new file will have the name: hostname.perf.yymmdd. The question I have is how do I subtract two dates. For example, if:

today=010104

yesterday=123103

Is there a ruby method that will allow me to perform something like: today - x and get yesterday?

Thank you
 
J

Jamis Buck

Tim said:

You just need to subtract (or add) the number of seconds you want from a
Date to get another date: in other words, to find the date 24 hours
prior to the current date:

yesterday = Time.now - 24 * 60 * 60

(Incidentally, I looked at the Date class documentation... I already
knew how to do Date arithmetic in Ruby and knew what I was looking for,
and it still took me a while to find where in the documentation it talks
about how to subtract some value x from a date to get another date.
Since this is a fairly common operation on dates, could this be given as
an example somewhere near the front of the docs? I know I would never
have found it there if I didn't already know what it was I wanted to do,
and how to do it.)
 
G

Gavin Sinclair

yesterday = Time.now - 24 * 60 * 60
(Incidentally, I looked at the Date class documentation... I already
knew how to do Date arithmetic in Ruby and knew what I was looking for,
and it still took me a while to find where in the documentation it talks
about how to subtract some value x from a date to get another date.
Since this is a fairly common operation on dates, could this be given as
an example somewhere near the front of the docs? I know I would never
have found it there if I didn't already know what it was I wanted to do,
and how to do it.)


Thanks for the tip. I'll update the docs soon.

Cheers,
Gavin
 
O

Osuka Adartse

Ruby said:
I have a file with a file name of the form filename.yymmdd, where yy=two digits year, mm=two digits month and dd=two digits day. For example, perf.030906 indicates 03=year 2003, 09=September and 06=the sixth day of the month (September 06, 2003).

This file contains performance data collected during the day and each system contains one file per day. We have few dozen systems collecting this data.

Every days, around 1:00 AM I have to take the file for the previous day and copy it to a central server where the new file will have the name: hostname.perf.yymmdd. The question I have is how do I subtract two dates. For example, if:

today=010104

yesterday=123103

Is there a ruby method that will allow me to perform something like: today - x and get yesterday?

Thank you
You could use something like this:

require 'date'
puts today=Date.today #=>2003-12-27
puts tomorrow=Date.new(2003,12,28) #=>2003-12-28
puts today-1 #=>2003-12-26
puts today+30 #=>2004-01-26

cheers
Adartse
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,770
Messages
2,569,584
Members
45,075
Latest member
MakersCBDBloodSupport

Latest Threads

Top