Loading ...
Sorry, an error occurred while loading the content.

Re: Time string parsing

Expand Messages
  • acummingsus
    ... feature and [ . . ] ... cookbook and http://search.cpan.org/~ahicox/Time-Interval-1.0.5/Interval.pod if you want to use the same module in order to get
    Message 1 of 5 , Mar 1 1:13 AM
    • 0 Attachment
      On Tuesday 28 February 2006 10:49, Shawn Hirn wrote:
      > I am working with the Time::Interval CPAN module's getInterval
      feature and
      [ . . ]
      > What I want is a variable called $y that's just the total seconds that's
      > represented by $x.
      >
      > For example, if ...
      >
      > $x = 1 hours, 2 minutes, 30 seconds" I want
      > $y = 3750
      >
      > So, how can I get to $y from $x? I have been reading the Perl
      cookbook and

      http://search.cpan.org/~ahicox/Time-Interval-1.0.5/Interval.pod

      if you want to use the same module in order to get your desired $y result:

      $number_of_seconds = convertInterval(
      hours => 1,
      minutes => 2,
      seconds => 30,
      ConvertTo => "seconds"
      );

      # ------------------

      yes, at that above url, its doc says that convertinterval will do that.

      Now, whether or not scalar variable can be used instead of the explicit
      (example: the explicit 2 for minutes), I don't know. Also you will
      need to
      parse $x in order to get each of the 3 numbers.

      Maybe there's another way, easier. But if scalar variable can be
      used, as I
      mentioned, then it could be done in this way.

      --
      Alan.
    • Stan Horwitz
      ... Thanks. For some reason, when I leave off the third argument, I get HASH(0xa8220) as a result. I also get the same thing if I use 0 as the third
      Message 2 of 5 , Mar 1 5:33 AM
      • 0 Attachment
        On Mar 1, 2006, at 4:13 AM — 3/1/06, acummingsus wrote:

        > On Tuesday 28 February 2006 10:49, Shawn Hirn wrote:
        > > I am working with the Time::Interval CPAN module's getInterval
        > feature and
        > [ . . ]
        > > What I want is a variable called $y that's just the total seconds
        > that's
        > > represented by $x.
        > >
        > > For example, if ...
        > >
        > > $x = 1 hours, 2 minutes, 30 seconds" I want
        > > $y = 3750
        > >
        > > So, how can I get to $y from $x? I have been reading the Perl
        > cookbook and
        >
        > http://search.cpan.org/~ahicox/Time-Interval-1.0.5/Interval.pod
        >
        > if you want to use the same module in order to get your desired $y
        > result:
        >
        > $number_of_seconds = convertInterval(
        > hours => 1,
        > minutes => 2,
        > seconds => 30,
        > ConvertTo => "seconds"
        > );
        >
        > # ------------------
        >
        > yes, at that above url, its doc says that convertinterval will do
        > that.
        >
        > Now, whether or not scalar variable can be used instead of the
        > explicit
        > (example: the explicit 2 for minutes), I don't know. Also you will
        > need to
        > parse $x in order to get each of the 3 numbers.
        >
        > Maybe there's another way, easier. But if scalar variable can be
        > used, as I mentioned, then it could be done in this way.

        Thanks. For some reason, when I leave off the third argument, I get
        "HASH(0xa8220)"
        as a result. I also get the same thing if I use "0" as the third
        argument.

        Sorry, I should have indicated that information in my original posting.

        Does anyone see what I am doing wrong, or is this CPAN module buggy?
      • Damien Carbery
        ... I helped Shawn off-list and got a solution. #!/usr/bin/perl -w use Time::Interval; use warnings; use strict; my $diff_time_seconds = getInterval( 02/26/06
        Message 3 of 5 , Mar 1 11:57 PM
        • 0 Attachment
          --- In perl-beginner@yahoogroups.com, Stan Horwitz <stan@...> wrote:
          >
          >
          > On Mar 1, 2006, at 4:13 AM — 3/1/06, acummingsus wrote:
          >
          > > On Tuesday 28 February 2006 10:49, Shawn Hirn wrote:
          > > > I am working with the Time::Interval CPAN module's getInterval
          > > feature and
          > > [ . . ]
          > > > What I want is a variable called $y that's just the total seconds
          > > that's
          > > > represented by $x.
          > > >
          > > > For example, if ...
          > > >
          > > > $x = 1 hours, 2 minutes, 30 seconds" I want
          > > > $y = 3750
          > > >
          > > > So, how can I get to $y from $x? I have been reading the Perl
          > > cookbook and
          > >
          > > http://search.cpan.org/~ahicox/Time-Interval-1.0.5/Interval.pod
          > >
          > > if you want to use the same module in order to get your desired $y
          > > result:
          > >
          > > $number_of_seconds = convertInterval(
          > > hours => 1,
          > > minutes => 2,
          > > seconds => 30,
          > > ConvertTo => "seconds"
          > > );
          > >
          > > # ------------------
          > >
          > > yes, at that above url, its doc says that convertinterval will do
          > > that.
          > >
          > > Now, whether or not scalar variable can be used instead of the
          > > explicit
          > > (example: the explicit 2 for minutes), I don't know. Also you will
          > > need to
          > > parse $x in order to get each of the 3 numbers.
          > >
          > > Maybe there's another way, easier. But if scalar variable can be
          > > used, as I mentioned, then it could be done in this way.
          >
          > Thanks. For some reason, when I leave off the third argument, I get
          > "HASH(0xa8220)"
          > as a result. I also get the same thing if I use "0" as the third
          > argument.
          >
          > Sorry, I should have indicated that information in my original posting.
          >
          > Does anyone see what I am doing wrong, or is this CPAN module buggy?
          >

          I helped Shawn off-list and got a solution.

          #!/usr/bin/perl -w

          use Time::Interval;
          use warnings;
          use strict;

          my $diff_time_seconds = getInterval('02/26/06 05:23:30','02/27/06
          08:20:35');
          # Note the '%' before the '$' because $diff_time_seconds is a ref.
          print "Seconds: ", convertInterval( %$diff_time_seconds,
          'ConvertTo'=>'seconds'), "\n";
        • acummingsus
          ... wrote: [ a solution arrives ] Super! (I was a bit confused as I didn t see any code in the post of Shawn s that I received). ... -w and use warnings ? [ .
          Message 4 of 5 , Mar 2 12:30 AM
          • 0 Attachment
            --- In perl-beginner@yahoogroups.com, "Damien Carbery" <daymobrew@...>
            wrote:
            [ a solution arrives ]

            Super!

            (I was a bit confused as I didn't see any code in the post of Shawn's
            that I received).

            > #!/usr/bin/perl -w
            >
            > use Time::Interval;
            > use warnings;

            -w and use warnings ?
            [ . . ]
            > # Note the '%' before the '$' because $diff_time_seconds is a ref.
            > print "Seconds: ", convertInterval( %$diff_time_seconds,
            > 'ConvertTo'=>'seconds'), "\n";

            http://search.cpan.org/~ahicox/Time-Interval-1.0.5/Interval.pod

            <quote>
            Returned Data Format

            unless the 'String' option is specified, this routine returns a hash
            reference containing the following data:
            [data snipped]
            </quote>

            (even though no code in Shawn's post I received) I was just about to
            reply saying that it looked like he was accessing a ref to a hash
            rather than dereferencing and getting the hash.

            BTW I think the doc says the default if not specified is seconds
            (which in turn I think makes it optional in this case to have the
            ConvertTo'=>'seconds' parameter). no such parameter
            equates/reverts/uses to the default of seconds (unless I
            mixed_up/transposed something else (something entirely different) and
            it came out (of the brain I guess) as that.

            --
            Alan.
          Your message has been successfully submitted and would be delivered to recipients shortly.