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; } } #### 2000: (leap year) 0112 --> 012 0402 --> 093 1231 --> 366 2007: 0112 --> 012 0402 --> 092 1231 --> 365