projects
/
spider.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
remove commas
[spider.git]
/
perl
/
Julian.pm
diff --git
a/perl/Julian.pm
b/perl/Julian.pm
index a86c11e2dc8e128510f0b50fda7698516b17bb01..ecef2d81e0f3bb5809ced2ebe4989114bc9c6eb3 100644
(file)
--- a/
perl/Julian.pm
+++ b/
perl/Julian.pm
@@
-11,12
+11,15
@@
use strict;
package Julian;
package Julian;
-use vars qw($VERSION $BRANCH);
+use vars qw($VERSION $BRANCH
@days @ldays @month
);
$VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ );
$VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ );
-$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/
) || 0
;
+$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/
|| (0,0))
;
$main::build += $VERSION;
$main::branch += $BRANCH;
$main::build += $VERSION;
$main::branch += $BRANCH;
+@days = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
+@ldays = (31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
+@month = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);
sub alloc($$$)
{
sub alloc($$$)
{
@@
-52,8
+55,6
@@
package Julian::Day;
use vars qw(@ISA);
@ISA = qw(Julian);
use vars qw(@ISA);
@ISA = qw(Julian);
-my @days = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
-
# is it a leap year?
sub _isleap
{
# is it a leap year?
sub _isleap
{
@@
-99,6
+100,22
@@
sub add($$)
return $self;
}
return $self;
}
+sub as_string
+{
+ my $self = shift;
+ my $days = $self->[1];
+ my $mon = 0;
+ for (_isleap($self->[0]) ? @Julian::ldays : @Julian::days) {
+ if ($_ < $days) {
+ $days -= $_;
+ $mon++;
+ } else {
+ last;
+ }
+ }
+ return "$days-$Julian::month[$mon]-$self->[0]";
+}
+
package Julian::Month;
use vars qw(@ISA);
package Julian::Month;
use vars qw(@ISA);
@@
-140,5
+157,11
@@
sub add($$)
return $self;
}
return $self;
}
+sub as_string
+{
+ my $self = shift;
+ return "$Julian::month[$self->[1]]-$self->[0]";
+}
+
1;
1;