1. Add show/dxstats command
[spider.git] / perl / Julian.pm
index 2307e08a9d651a6b6a238b90d8af0f8945aabc1e..0bd1f168f0c84c150357e3f15f1f5f6595b961d2 100644 (file)
@@ -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;