X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FJulian.pm;h=0bd1f168f0c84c150357e3f15f1f5f6595b961d2;hb=dbc63738d8b497c03bfb81c84e61161bb5c7931a;hp=2307e08a9d651a6b6a238b90d8af0f8945aabc1e;hpb=f0910da57e166acb22e83de4e4b771d175074c80;p=spider.git diff --git a/perl/Julian.pm b/perl/Julian.pm index 2307e08a..0bd1f168 100644 --- a/perl/Julian.pm +++ b/perl/Julian.pm @@ -10,6 +10,17 @@ use strict; package Julian; + +use vars qw($VERSION $BRANCH @days @ldays @month); +$VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ ); +$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/ ) || 0; +$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($$$) { my ($pkg, $year, $thing) = @_; @@ -44,8 +55,6 @@ package Julian::Day; 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 { @@ -91,6 +100,22 @@ sub add($$) 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); @@ -132,5 +157,11 @@ sub add($$) return $self; } +sub as_string +{ + my $self = shift; + return "$Julian::month[$self->[1]]-$self->[0]"; +} + 1;