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 )