NAME

Net::Analysis::Time - value object for [tv_sec, tv_usec] times

SYNOPSIS

use Net::Analysis::Time;

my $t1 = Net::Analysis::Time->new(10812345, 123456);
my $t2 = Net::Analysis::Time->new(10812356, 123456);

my $diff = $t2-$t1; # == new Time Object

print "$diff\n"; # == "11.000000"

$t1->round_usec(10000); # "$t1" == "10812345.120000";

DESCRIPTION

Can't believe I've found myself implementing a date/time module. The shame of it.

This is a heavily overloaded object, so '+', '-' do what you expect.

There is some format stuff to change how it stringfies, and some stuff for rounding off values, used elsewhere for time-boxing.

This stuff should probably all be junked as soon as someone wants some efficiency.

new ($sec [, $usec] )

If passed a single floating point arg, does what it can, but don't blame me if rounding errors knacker things up.

Best to pass two ints, one seconds and one microseconds.

round_usec ($usec_step [, $round_up_not_down])

Rounds the time down to the nearest usec_step value. Valid values between 10 and 1000000. A value of 1000000 will round to the nearest second.

Optional argument, if true, causes rounding to go up, not down.

CLASS METHODS

set_format ($format)

Set the default output format for strigification of the date. The parameter is either a strftime(3) compliant string, or a named format:

raw  - 1100257189.123456
time - 10:59:49.123456
full - 2004/11/12 10:59:49.123456

Returns the old format.

EXPORT

None by default.

AUTHOR

Adam B. Worrall, <worrall@cpan.org>

COPYRIGHT AND LICENSE

Copyright (C) 2004 by Adam B. Worrall

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.5 or, at your option, any later version of Perl 5 you may have available.