sub _daygm {
$_[3] + ($Cheat{pack("ss",@_[4,5])} ||= do {
my $month = ($_[4] + 10) % 12;
my $year = $_[5] + 1900 - $month/10;
365*$year + $year/4 - $year/100 + $year/400 + ($month*306 + 5)/10 - $Epoc
});
}
####
sub _daygm {
$_[3] + ($Cheat{pack("ss",@_[4,5])} ||= do {
my $month = ($_[4] + 10) % 12;
my $year = $_[5] + 1900 + ($_[4] + 10) / 12 - 1;
365*$year + $year/4 - $year/100 + $year/400 + ($month*306 + 5)/10 - $Epoc
});
}
####
use integer;
print("month was new new\n");
print("----- --- --- ---\n");
foreach (0..23) {
my $month = ($_ + 10) % 12;
printf("%-5d %-3d %-3d %-3d\n",
$_,
-$month/10,
-$month/10 + $_/12,
($_+10)/12-1
);
}
####
month was new new
----- --- --- ---
0 -1 -1 -1
1 -1 -1 -1
2 0 0 0
3 0 0 0
4 0 0 0
5 0 0 0
6 0 0 0
7 0 0 0
8 0 0 0
9 0 0 0
10 0 0 0
11 0 0 0
12 -1 0 0
13 -1 0 0
14 0 1 1
15 0 1 1
16 0 1 1
17 0 1 1
18 0 1 1
19 0 1 1
20 0 1 1
21 0 1 1
22 0 1 1
23 0 1 1