File Coverage

blib/lib/Date/Day.pm
Criterion Covered Total %
statement 21 26 80.7
branch 5 10 50.0
condition 5 15 33.3
subroutine 3 3 100.0
pod 0 1 0.0
total 34 55 61.8


line stmt bran cond sub pod time code
1             package Date::Day;
2              
3 1     1   539 use strict;
  1         2  
  1         30  
4 1     1   4 use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);
  1         1  
  1         340  
5              
6             require Exporter;
7              
8             @ISA = qw(Exporter AutoLoader);
9             @EXPORT = qw(
10             &day
11             );
12             $VERSION = '1.04';
13              
14             sub day
15             {
16              
17 1     1 0 53 my $m = @_[0];
18 1         2 my $d = @_[1];
19 1         2 my $y = @_[2];
20              
21 1 50 33     22 if($m !~ /[\d]{1,2}/ || $m > 12 || $m < 1 ){ return "ERR"; }
  0   33     0  
22 1 50 33     13 if($d !~ /[\d]{1,2}/ || $d > 31 || $d < 1 ){ return "ERR"; }
  0   33     0  
23 1 50 33     12 if($y !~ /[\d]+/ || $y < 1 ){ return "ERR"; }
  0         0  
24              
25 1         16 my %month=(1,0,2,3,3,2,4,5,5,0,6,3,7,5,8,1,9,4,10,6,11,2,12,4,);
26 1         8 my %weekday=(0,'SUN',1,'MON',2,'TUE',3,'WED',4,'THU',5,'FRI',6,'SAT',);
27              
28 1 50       4 if($m == 1){ $y--; }
  0         0  
29 1 50       4 if($m == 2){ $y--; }
  0         0  
30              
31 1         2 $m = int($m);
32 1         3 $d = int($d);
33 1         1 $y = int($y);
34              
35 1         8 my $wday = (($d+$month{$m}+$y+(int($y/4))-(int($y/100))+(int($y/400)))%7);
36 1         141 return $weekday{$wday};
37              
38             }
39              
40             1;
41             __END__