projects
/
spider.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add 1702 prefix cty.dat data
[spider.git]
/
perl
/
Julian.pm
diff --git
a/perl/Julian.pm
b/perl/Julian.pm
index a86c11e2dc8e128510f0b50fda7698516b17bb01..85f47bdd37e3abea4f988186675b2106db73cf93 100644
(file)
--- a/
perl/Julian.pm
+++ b/
perl/Julian.pm
@@
-11,12
+11,12
@@
use strict;
package Julian;
package Julian;
-use vars qw($VERSION $BRANCH);
-$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;
+use vars qw($VERSION $BRANCH @days @ldays @month);
+main::mkver($VERSION = q$Revision$) if main->can('mkver');
+@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
+52,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
{
@@
-78,9
+76,9
@@
sub sub($$)
my $diny = _isleap($self->[0]) ? 366 : 365;
$self->[1] -= $amount;
while ($self->[1] <= 0) {
my $diny = _isleap($self->[0]) ? 366 : 365;
$self->[1] -= $amount;
while ($self->[1] <= 0) {
- $self->[1] += $diny;
$self->[0] -= 1;
$diny = _isleap($self->[0]) ? 366 : 365;
$self->[0] -= 1;
$diny = _isleap($self->[0]) ? 366 : 365;
+ $self->[1] += $diny;
}
return $self;
}
}
return $self;
}
@@
-99,6
+97,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
+154,11
@@
sub add($$)
return $self;
}
return $self;
}
+sub as_string
+{
+ my $self = shift;
+ return "$Julian::month[$self->[1]]-$self->[0]";
+}
+
1;
1;