File Coverage

blib/lib/Acme/September/Eternal.pm
Criterion Covered Total %
statement 27 29 93.1
branch 2 4 50.0
condition 2 6 33.3
subroutine 6 6 100.0
pod 0 1 0.0
total 37 46 80.4


line stmt bran cond sub pod time code
1             package Acme::September::Eternal;
2              
3 1     1   61360 use 5.010000;
  1         4  
4 1     1   4 use strict;
  1         2  
  1         26  
5 1     1   5 use warnings;
  1         2  
  1         75  
6              
7             require Exporter;
8              
9             our @ISA = qw(Exporter);
10             our @EXPORT = qw(eternalseptemberize);
11             our $VERSION = '1.0';
12              
13 1     1   370 use Date::Manip;
  1         135113  
  1         117  
14 1     1   528 use Lingua::EN::Numbers::Ordinate;
  1         379  
  1         211  
15              
16             sub eternalseptemberize {
17             # Change date&time string to "Eternal september" date string
18 2     2 0 74 my ($indate) = @_;
19              
20 2         4 my $sepdate = '1993-09-01 00:00:00';
21              
22 2         21 my $inmangler = Date::Manip::Date->new();
23 2         17772 my $sepmangler = Date::Manip::Date->new();
24              
25 2         17446 my ($inparseerr) = $inmangler->parse($indate);
26              
27 2 50 33     50705 if(defined($inparseerr) && $inparseerr) {
28 0         0 return '';
29             }
30              
31 2         9 my ($sepparseerr) = $sepmangler->parse($sepdate);
32              
33 2 50 33     24205 if(defined($sepparseerr) && $sepparseerr) {
34 0         0 return '';
35             }
36              
37 2         13 my $delta = $inmangler->calc($sepmangler, 1);
38 2         2857 my @deltafields = $delta->value();
39 2         40 my $days = ordinate(int($deltafields[4] / 24) + 1);
40 2         60 my $result = $inmangler->printf("%a, $days et. Sept. 1993 %H:%M:%S");
41              
42 2         941 return $result;
43             }
44              
45             1;
46             __END__