There are also a couple of modules out there on CPAN for this, for example Time::JulianDay. You could use it like this (which should also handle leap years correctly):
use Time::JulianDay; sub conv2jul { my ($moda, $year) = @_; my ($mon, $day) = unpack "A2A2", $moda; return julian_day($year, $mon, $day) - julian_day($year, 1, 0); } for my $year qw(2000 2007) { print "$year:\n"; for my $moda qw(0112 0402 1231) { my $jd = conv2jul($moda, $year); printf " %s --> %03s\n", $moda, $jd; } }
would print:
2000: (leap year) 0112 --> 012 0402 --> 093 1231 --> 366 2007: 0112 --> 012 0402 --> 092 1231 --> 365
In reply to Re: Very Simple Conversion of Gregorian to Julian Calendar
by almut
in thread Very Simple Conversion of Gregorian to Julian Calendar
by Aim9b
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |