Timestamp

How do i add two time stamps

Time stamps are in the form of HH:MM:DD:SS,nnnn

Used Time.parse to convert to Time and tried add ts1 + ts2 but it failed
saying no method.

tried t1 + t1.to_i i am getting

irb(main):013:0> p t1 + t2.to_i
RangeError: time + 1164507831.000000 out of Time range
from (irb):13:in `+’
from (irb):13

can somebody help me out?

My timestamps are HH:MM:SS,nnnn format… I mentioned wrongly before…

Srinivas Sa wrote:

How do i add two time stamps

Time stamps are in the form of HH:MM:DD:SS,nnnn

Used Time.parse to convert to Time and tried add ts1 + ts2 but it failed
saying no method.

tried t1 + t1.to_i i am getting

irb(main):013:0> p t1 + t2.to_i
RangeError: time + 1164507831.000000 out of Time range
from (irb):13:in `+’
from (irb):13

can somebody help me out?

Srinivas Sa [email protected] writes:

tried t1 + t1.to_i i am getting

irb(main):013:0> p t1 + t2.to_i
RangeError: time + 1164507831.000000 out of Time range
from (irb):13:in `+’
from (irb):13

can somebody help me out?

So what do you want to get?
eg,(the year 2006)+((the year 2007),you want to get (the year 4013)?


For some reasons,my EMail had been changed to “kdr2[#]163.com” now…

NO GNUS is Bad News.

                                           ------yours Killy Draw

Srinivas Sa wrote:

How do i add two time stamps

Time stamps are in the form of HH:MM:DD:SS,nnnn

Used Time.parse to convert to Time and tried add ts1 + ts2 but it failed
saying no method.

Saying what? Please paste the code and the exact wording of the error
message into your newsreader.

tried t1 + t1.to_i i am getting

irb(main):013:0> p t1 + t2.to_i
RangeError: time + 1164507831.000000 out of Time range
from (irb):13:in `+’
from (irb):13

Of course adding two times near the present would exceed the total range
of
possible times, between December 31, 1969 (time approx. = 0) and January
18, 2038 (time approx. = (2^31)-1). That is the entire, total range for
time variables, and if you try to add two times near the present,
November
11, 2006 (time approx. = 1164533263), you will overflow the acceptable
range.

But this is an obvious error. Why not tell us what you are trying to
accomplish?

can somebody help me out?

Sure, no problem, I will be happy to help you out. But first, you need
to
tell me that you want.

Computer programming can be described as telling a computer what you
want,
in excruciatingly specific terms. Be just as specific in your reply.

  1. I want this ____________________

  2. But instead, I got this ______________________

  3. Here is how (1) and (2) differ from each other _________________

You have only described a problem on the way to a goal, but you didn’t
mention what the goal was.

KDr2 [email protected] writes:

saying no method.
So what do you want to get?
eg,(the year 2006)+((the year 2007),you want to get (the year 4013)?

I think it would be more like this, which is a perfectly meaningful
calculation:

(the date 2006.11.26) + (2007 years, 0 months, 0 days) to get
(the date 4013.11.26)

Sorry for not being clear; I am trying to work on merging subtitle files
which holds the subtitles of a movie. They have the HH:MM:SS,nnn and
sentence that need to be flashed at that moment on the screen.

I just need to know how to add up two time stamps so that i can merge
the two files and make it one continuous sequence of subtitles. E.g.

00:24:25,700 + 00:00:03,800 should yield 00:24:29,500

I don’t bother what date (YY/MM/DD part) it is gonna be when I add up,
it can be anything. So overflow is a t

Or is there a different class I have to use or should I write my own
logic to do this?

Thanks in advance

Paul L. wrote:

Srinivas Sa wrote:

How do i add two time stamps

Time stamps are in the form of HH:MM:DD:SS,nnnn

Used Time.parse to convert to Time and tried add ts1 + ts2 but it failed
saying no method.

Saying what? Please paste the code and the exact wording of the error
message into your newsreader.

tried t1 + t1.to_i i am getting

irb(main):013:0> p t1 + t2.to_i
RangeError: time + 1164507831.000000 out of Time range
from (irb):13:in `+’
from (irb):13

Of course adding two times near the present would exceed the total range
of
possible times, between December 31, 1969 (time approx. = 0) and January
18, 2038 (time approx. = (2^31)-1). That is the entire, total range for
time variables, and if you try to add two times near the present,
November
11, 2006 (time approx. = 1164533263), you will overflow the acceptable
range.

But this is an obvious error. Why not tell us what you are trying to
accomplish?

can somebody help me out?

Sure, no problem, I will be happy to help you out. But first, you need
to
tell me that you want.

Computer programming can be described as telling a computer what you
want,
in excruciatingly specific terms. Be just as specific in your reply.

  1. I want this ____________________

  2. But instead, I got this ______________________

  3. Here is how (1) and (2) differ from each other _________________

You have only described a problem on the way to a goal, but you didn’t
mention what the goal was.

Srinivas Sa wrote:

Sorry for not being clear; I am trying to work on merging subtitle files
which holds the subtitles of a movie. They have the HH:MM:SS,nnn and
sentence that need to be flashed at that moment on the screen.

Break it down for us. What does “,nnn” signify?

Here is how to get the components:

a = “23:56:33,9876”

h,m,s,n = a.scan(%r{(\d{2}):(\d{2}):(\d{2}),(\d+)}).flatten

Each of the results is a string, chances are you want to convert them
into
integers and then add them up to get a result expressed in seconds:

elapsed = h.to_i * 3600 + m.to_i * 60 + s.to_i

Now you can add or subtract elapsed times using the “elapsed” results.

Then reconvert the elapsed time expressed as an integer into hours,
minutes,
and seconds:

s = elapsed % 60

elapsed /= 60

m = elapsed % 60

elapsed /= 60

h = elapsed

I just need to know how to add up two time stamps so that i can merge
the two files and make it one continuous sequence of subtitles. E.g.

00:24:25,700 + 00:00:03,800 should yield 00:24:29,500

I don’t bother what date (YY/MM/DD part) it is gonna be when I add up,
it can be anything.

You simply must put up enough code so we can discover your error.

You have posted the line where the error occurs, but not the code that
produces the error and delivered it to that line.

Since you don’t seem inclined to post your code, my advice is to start
over
and use methods like those shown above.

On 2006-11-26, Srinivas Sa [email protected] wrote:

Sorry for not being clear; I am trying to work on merging subtitle files
which holds the subtitles of a movie. They have the HH:MM:SS,nnn and
sentence that need to be flashed at that moment on the screen.

I just need to know how to add up two time stamps so that i can merge
the two files and make it one continuous sequence of subtitles. E.g.

00:24:25,700 + 00:00:03,800 should yield 00:24:29,500

Those appear to be durations, not time stamps - you want to add 24 min,
25 sec and change to 3 min and change, right? If so, you should be
looking for a class that deals with time durations (time intervals).

(first result of:
http://www.google.com/search?q=define%3A+timestamp&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:en-US:official
A timestamp is the current time of an event that is recorded by a
computer.
)

Hi –

On Mon, 27 Nov 2006, Paul L. wrote:

Srinivas Sa wrote:

Sorry for not being clear; I am trying to work on merging subtitle files
which holds the subtitles of a movie. They have the HH:MM:SS,nnn and
sentence that need to be flashed at that moment on the screen.

Break it down for us. What does “,nnn” signify?

Fractions of a second:

irb(main):020:0> Time.parse(“10:53:44,12”) + 0.87
=> Sun Nov 26 10:53:44 -0500 2006
irb(main):021:0> Time.parse(“10:53:44,12”) + 0.88
=> Sun Nov 26 10:53:45 -0500 2006

David

[email protected] wrote:

Break it down for us. What does “,nnn” signify?

Fractions of a second:

irb(main):020:0> Time.parse(“10:53:44,12”) + 0.87
=> Sun Nov 26 10:53:44 -0500 2006
irb(main):021:0> Time.parse(“10:53:44,12”) + 0.88
=> Sun Nov 26 10:53:45 -0500 2006

Milliseconds, then, since they appeared as three-digit integers.

Hi –

On Sun, 26 Nov 2006, Srinivas Sa wrote:

tried t1 + t1.to_i i am getting

irb(main):013:0> p t1 + t2.to_i
RangeError: time + 1164507831.000000 out of Time range
from (irb):13:in `+’
from (irb):13

can somebody help me out?

You might find it interesting to look into some of the date/time
extensions in ActiveSupport, the utility library that ships with
Rails. You get things like:

20.hours # 72000 (# of seconds in 20 hours)

David

[email protected] wrote:

/ …

You might find it interesting to look into some of the date/time
extensions in ActiveSupport, the utility library that ships with
Rails. You get things like:

20.hours # 72000 (# of seconds in 20 hours)

Such things are easy enough to add to Fixnum:

class Fixnum
def hours
return self * 3600
end
def minutes
return self * 60
end
end

This avoids finding and adapting an entire library for such handy but
simple
extensions.

Hi –

On Mon, 27 Nov 2006, Paul L. wrote:

sentence that need to be flashed at that moment on the screen.
Milliseconds, then, since they appeared as three-digit integers.
Actually the whole thing (44,12 or 23,555 or whatever) is one float,
using a comma separator instead of a dot. The comma is the
“preferred” separator in this context in the ISO 8601 standard, so I
imagine that’s being followed here.

David

Paul L. wrote:

imagine that’s being followed here.

Not that I have any doubt about your claim, but I find it hard to believe
that an international standard would specify a locale-specific radix
character.

It does seem odd, but I’ve seen so much oddness come from committees
that I can’t be totally disbelieving.

Hal

[email protected] wrote:

/ …

Milliseconds, then, since they appeared as three-digit integers.

Actually the whole thing (44,12 or 23,555 or whatever) is one float,
using a comma separator instead of a dot. The comma is the
“preferred” separator in this context in the ISO 8601 standard, so I
imagine that’s being followed here.

Not that I have any doubt about your claim, but I find it hard to
believe
that an international standard would specify a locale-specific radix
character.

[email protected] wrote:

I’m not sure what the distinction is between doubting and finding it
hard to believe :slight_smile: Anyway, here’s a quote from ISO 8601:

Haha… there are many things that I don’t doubt but find
hard to believe in, such as quantum mechanics, the democratic
process, and true love.

Hal

[email protected] wrote:

Actually the whole thing (44,12 or 23,555 or whatever) is one float,
using a comma separator instead of a dot. The comma is the
“preferred” separator in this context in the ISO 8601 standard, so I
imagine that’s being followed here.

Not that I have any doubt about your claim, but I find it hard to believe
that an international standard would specify a locale-specific radix
character.

I’m not sure what the distinction is between doubting and finding it
hard to believe :slight_smile:

Okay, fair enough. I don’t doubt that Bush is president, but I find it
hard
to believe. That should do it. :slight_smile:

Anyway, here’s a quote from ISO 8601:

If necessary for a particular application a decimal fraction of hour,
minute or second may be included. If a decimal fraction is included,
lower order components (if any) shall be omitted and the decimal
fraction shall be divided from the integer part by the decimal sign
specified in ISO 31-0: i.e. the comma [,] or full stop [.]. Of these,
the comma is the preferred sign.

This sounds as though the radix sign should follow the locale, as do
numbers
in that locale.

Paul L. schrieb:

[email protected] wrote:

Actually the whole thing (44,12 or 23,555 or whatever) is one float,
using a comma separator instead of a dot. The comma is the
“preferred” separator in this context in the ISO 8601 standard, so I
imagine that’s being followed here.

Not that I have any doubt about your claim, but I find it hard to believe
that an international standard would specify a locale-specific radix
character.

Paul, what would you think to be a better separator, and why?

Regards,
Pit

Hi –

On Mon, 27 Nov 2006, Paul L. wrote:

Not that I have any doubt about your claim, but I find it hard to believe
that an international standard would specify a locale-specific radix
character.

I’m not sure what the distinction is between doubting and finding it
hard to believe :slight_smile: Anyway, here’s a quote from ISO 8601:

If necessary for a particular application a decimal fraction of hour,
minute or second may be included. If a decimal fraction is included,
lower order components (if any) shall be omitted and the decimal
fraction shall be divided from the integer part by the decimal sign
specified in ISO 31-0: i.e. the comma [,] or full stop [.]. Of these,
the comma is the preferred sign.
<<<

I’m not a big ISO 8601 expert, but I assume that this (or its
antecedents) are at the root of Ruby’s accepting the comma (via a C
library or otherwise – I haven’t looked closely).

David

Hi –

On Mon, 27 Nov 2006, Paul L. wrote:

Milliseconds, then, since they appeared as three-digit integers.
I’m not sure what the distinction is between doubting and finding it
hard to believe :slight_smile:

Okay, fair enough. I don’t doubt that Bush is president, but I find it hard
to believe. That should do it. :slight_smile:

Yes, I see :slight_smile:

This sounds as though the radix sign should follow the locale, as do numbers
in that locale.

It sounds to me like the comma is preferred over the dot, period :slight_smile:
But either is OK.

David