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; } }