##################################################################### # &clean_date first looks for a date string or combination day,month, # year. If all 4 parameters are supplied, it tries using the date # string first and only uses the day/month/year parameters if date # failed. we return 1 of 3 format specified by $format (1=yyyymmdd, # 2=yyyy-mm-dd, 3=[yyyy, mm, dd]). If all fails, we return 0; sub clean_date { my($format,$date,$day,$mo,$yr)=@_; # normalize for($yr,$mo,$day){$_=int($_)} if($yr){$yr=~ /^(\d{4})/o;$yr="$1"} if($mo){$mo=~ /^(\d{1,2})/o;$mo=sprintf("%.2d",$1)} if($day){$day=~ /^(\d{1,2})/o;$day=sprintf("%.2d",$1)} # return, formatted, if at all unless((&days_in_month($yr,$mo))&&$day){return 0} if($format eq 1){$date=&date_join($yr,$mo,$day);return($date);} elsif($format eq 2){return("$yr-$mo-$day")} else{return("$yr$mo$day")} } # clean_date