MooX-CalcTime
view release on metacpan or search on metacpan
lib/MooX/CalcTime/Role.pm view on Meta::CPAN
package MooX::CalcTime::Role;
use Modern::Perl;
use Moo::Role;
use DateTime;
our $VERSION = '0.0.8'; # VERSION
# ABSTRACT: calculate total time that a program run
has _time_start => (
is => 'ro',
default => time,
);
sub get_run_second {
time - $_[0]->_time_start;
}
sub get_runtime {
my $interval = $_[0]->get_run_second;
my $second = $interval % 60;
my $total_minute = int ($interval / 60);
my $minute = $total_minute % 60;
my $total_hour = int ($total_minute / 60);
my $hour = $total_hour % 60;
my $day = int($total_hour / 24);
my $start = DateTime->from_epoch(epoch => $_[0]->_time_start);
my $end = DateTime->now;
my $msg = "Starting time: $start\n";
$msg .= "Ending time: $end\n";
$msg .= "Running time: $day days $hour hours $minute minutes $second second\n";
return $msg;
}
sub print_runtime {
say $_[0]->get_runtime;
}
1;
__END__
=pod
=encoding UTF-8
=head1 NAME
MooX::CalcTime::Role - calculate total time that a program run
=head1 VERSION
version 0.0.8
=head1 SYNOPSIS
package AA;
( run in 1.651 second using v1.01-cache-2.11-cpan-ceb78f64989 )