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?

···

--
Posted via http://www.ruby-forum.com/.

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?

--
Posted via http://www.ruby-forum.com/\.

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.

···

--
Paul Lutus
http://www.arachnoid.com

Srinivas Sa <sr.sakhamuri@gmail.com> writes:

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?

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

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 Lutus 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.

--
Posted via http://www.ruby-forum.com/\.

Hi --

···

On Sun, 26 Nov 2006, Srinivas Sa wrote:

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?

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

--
                   David A. Black | dblack@wobblini.net
Author of "Ruby for Rails" [1] | Ruby/Rails training & consultancy [3]
DABlog (DAB's Weblog) [2] | Co-director, Ruby Central, Inc. [4]
[1] Ruby for Rails | [3] http://www.rubypowerandlight.com
[2] http://dablog.rubypal.com | [4] http://www.rubycentral.org

KDr2 <KDr2@163.com> writes:

Srinivas Sa <sr.sakhamuri@gmail.com> writes:

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?

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)

···

--
Lloyd Zusman
ljz@asfast.com
God bless you.

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.
)

···

On 2006-11-26, Srinivas Sa <sr.sakhamuri@gmail.com> wrote:

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 Lutus 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.

···

--
Paul Lutus
http://www.arachnoid.com

dblack@wobblini.net 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.

···

--
Paul Lutus
http://www.arachnoid.com

Hi --

···

On Mon, 27 Nov 2006, Paul Lutus 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

--
                   David A. Black | dblack@wobblini.net
Author of "Ruby for Rails" [1] | Ruby/Rails training & consultancy [3]
DABlog (DAB's Weblog) [2] | Co-director, Ruby Central, Inc. [4]
[1] Ruby for Rails | [3] http://www.rubypowerandlight.com
[2] http://dablog.rubypal.com | [4] http://www.rubycentral.org

dblack@wobblini.net wrote:

Hi --

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

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

···

On Mon, 27 Nov 2006, Paul Lutus wrote:

--
Paul Lutus
http://www.arachnoid.com

Hi --

···

On Mon, 27 Nov 2006, Paul Lutus wrote:

dblack@wobblini.net wrote:

Hi --

On Mon, 27 Nov 2006, Paul Lutus 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

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

--
                   David A. Black | dblack@wobblini.net
Author of "Ruby for Rails" [1] | Ruby/Rails training & consultancy [3]
DABlog (DAB's Weblog) [2] | Co-director, Ruby Central, Inc. [4]
[1] Ruby for Rails | [3] http://www.rubypowerandlight.com
[2] http://dablog.rubypal.com | [4] http://www.rubycentral.org

dblack@wobblini.net 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.

···

--
Paul Lutus
http://www.arachnoid.com

Paul Lutus wrote:

···

dblack@wobblini.net 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.

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

Hal

Hi --

/ ...

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.

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

···

On Mon, 27 Nov 2006, Paul Lutus wrote:

dblack@wobblini.net wrote:

--
                   David A. Black | dblack@wobblini.net
Author of "Ruby for Rails" [1] | Ruby/Rails training & consultancy [3]
DABlog (DAB's Weblog) [2] | Co-director, Ruby Central, Inc. [4]
[1] Ruby for Rails | [3] http://www.rubypowerandlight.com
[2] http://dablog.rubypal.com | [4] http://www.rubycentral.org

Paul Lutus schrieb:

···

dblack@wobblini.net 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

dblack@wobblini.net 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

dblack@wobblini.net wrote:

Hi --

/ ...

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.

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.

···

On Mon, 27 Nov 2006, Paul Lutus wrote:

dblack@wobblini.net wrote:

--
Paul Lutus
http://www.arachnoid.com

Pit Capitain wrote:

Paul Lutus schrieb:

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?

Anything but a separator that depends on locale. A separate field, for
example, one separated by a tab or any other character. Something like
that.

The database designers have obviously solved this problem. Their plain-text
databases are internationally acceptable because they choose field
separators they avoid locale-specific properties.

The remainder of the information provided doesn't suffer from
local-specificity (hh:mm:ss). A date might pose a problem, but many
databases have a default of yyyy-mm-dd (for plain-text database formats)
which seems to be acceptable to everyone.

When I first saw the data sample I assumed the comma was a field separator,
which would have made the three digits to the right a milliseconds value.
But ... no such luck.

To a European, "hh:mm:ss,nnn" might mean seconds and fractions thereof. To
an American, the ",nnn" part appears to be milliseconds. This is an easily
avoidable confusion.

···

dblack@wobblini.net wrote:

--
Paul Lutus
http://www.arachnoid.com