package Tools; use strict; use warnings; use DateTime; #use Date::Parse qw(str2time); use Exporter qw(import); our @EXPORT = qw( howOld rUp source ); sub howOld { my ($date, $time) = split ' ', shift; my ($hh, $mm, $ss) = split ':', $time; my ($d, $m, $y) = split '/', $date; my $dob = DateTime->new( year => $y, month => $m, day => $d, hour => $hh, minute => $mm, second => $ss, ); my $now = DateTime->now; my $dur = $now->delta_md($dob); my $years = int($dur->delta_months / 12); my $months = $dur->delta_months % 12; my $days = $dur->delta_days; my @age = "$years years"; if ($days >= 1 and $months > 0) { push @age, sprintf ", %i %s ", $months, ($months >= 2 ? 'months' : 'month'); } elsif (!$days and $months > 0) { push @age, sprintf " and %i %s ", $months, ($months >= 2 ? 'months' : 'month'); } if ($days > 0) { push @age, sprintf " and %i %s", $days, ($days >= 2 ? 'days' : 'day'); } return join('', @age), ($now->epoch - $dob->epoch); } # sub howOld { # my $dob = str2time(shift); # my $now = time; # my ($days, $weeks, $months, $years, $remain) = (0)x5; # my $diff = $now - $dob; # $days = $diff / 86400000 * 1000; # $weeks = $days / 7; # $months = $days / 30.4375; # $years = $days / 365.24; # $remain = ($days - int($years) * 365.24) / 30.4375; # $days = rUp ($days * 10 / 10); # $weeks = $weeks * 10 / 10; # $months = $months * 10 / 10; # $remain = $remain * 10 / 10; # my @text; # if ($years >= 1) { # push @text, sprintf "%i %s", $years, ($years >= 2 ? 'years' : 'Year'); # if ($remain >= 1) { # push @text, sprintf "and %i %s", $remain, ($remain >= 2 ? 'months' : 'month'); # } # } elsif ($months >= 1) { # push @text, sprintf "and %i %s", $months, ($months >= 2 ? "months" : "month"), $months; # } elsif ($days >= 0) { # push @text, sprintf "and %i %s", $days, ($days >= 2 ? "days" : "day"), $days; # } # return join (' ', @text), $diff; # } # sub rUp { # my $n = shift; # return(($n == int($n)) ? $n : int($n + 1)) # } sub source { my $file = shift; my $text; unless (-f $file) { return "Error: File not found."; } open FH, $file or return "Error: $!"; $text.= $_ while ; close FH; return $text; }