#!/usr/local/bin/perl use strict; sub dayofyear { my ($day1,$month,$year)=@_; my @cumul_d_in_m=(0,31,59,90,120,151,181,212,243,273,304,334,365); my $doy=$cumul_d_in_m[--$month]+$day1; $doy++ if (&leap($year) && $month>1); return $doy; } sub leap { my $y = shift; return 0 unless $y % 4 == 0; return 1 unless $y % 100 == 0; return 0 unless $y % 400 == 0; return 1; } print dayofyear(10,3,2005)."\n"; print dayofyear(10,3,2004)."\n"; print dayofyear(10,2,2005)."\n"; print dayofyear(10,2,2004)."\n";