Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re^3: Timer subtraction

by haukex (Monsignor)
on Oct 06, 2017 at 09:51 UTC ( #1200811=note: print w/replies, xml ) Need Help??


in reply to Re^2: Timer subtraction
in thread Timer subtraction

Format duration is not working for me. In the last 3 print statements you are using format_duration which is not supported. Unfortunately, your code snippet fails.

The code snippet works fine for me. How does it fail for you? Please see How do I post a question effectively? and I know what I mean. Why don't you? - what are the exact error messages you get? Perhaps you have to install DateTime::Format::Duration?

Even if not, you can still access the fields of the DateTime::Duration object yourself. This outputs the same thing as my above code:

sub my_fmt_duration { my @t = shift->in_units('hours','minutes','seconds','nanoseconds') +; $t[3]/=1000000; # ns->ms return sprintf("%02d:%02d:%02d:%03d",@t); } print my_fmt_duration($first),"\n"; print my_fmt_duration($last ),"\n"; $last->subtract_duration($first); print my_fmt_duration($last ),"\n";

Replies are listed 'Best First'.
Re^4: Timer subtraction
by Anonymous Monk on Oct 06, 2017 at 11:15 UTC

    Thank you. It worked

    #!/volume/perl/bin/perl use warnings; use strict; use DateTime::Duration; my $first = "00:00:01:04"; my $last = "00:00:08:861"; sub my_parse_duration { my $in = shift; my %t; @t{qw/hours minutes seconds nanoseconds/} = $in=~/\A(\d\d):(\d\d):(\d\d):(\d\d\d?)\z/ or die "failed to parse '$in'"; $t{nanoseconds}*=1000000; # ms->ns return DateTime::Duration->new(%t); } sub my_fmt_duration { my @t = shift->in_units('hours','minutes','seconds','nanoseconds') +; $t[3]/=1000000; # ns->ms return sprintf("%02d:%02d:%02d:%03d",@t); } $first = my_parse_duration($first); $last = my_parse_duration($last ); $last->subtract_duration($first); print my_fmt_duration($last ),"\n";

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1200811]
help
Chatterbox?
[marto]: good morning all
[Discipulus]: mmh.. why print eval '2+1/3*(2+2/5))' does not print anything?

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (6)
As of 2017-10-24 10:09 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    My fridge is mostly full of:

















    Results (287 votes). Check out past polls.

    Notices?