# date_conv.awk - supply MM/DD/YY/number of days to add or substract BEGIN{ FS="/" split( "Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec", month," "); split( "31 28 31 30 31 30 31 31 30 31 30 31", days, " "); } { year = $3 leapyear = year % 4; if( leapyear == 0 ) days[2] = 29 else days[2] = 28; doy = 0; for ( i = 1; i< $1; i++ ) doy = doy + days[i] doy = doy + $2; if ( doy <= 60 ) { doy = doy + 365; year = year - 1; leapyear = year %4; if( leapyear == 0 ) { days[2] = 29; doy = doy + 1; } } doy = doy + $4; for ( i = 1; i <= 12; i++ ) { doy = doy - days[i]; if ( doy <= 0 ) { doy = doy + days[i]; break; } } printf( "%d/%d/%d", i, doy, year ) }