pro month_start_end,yr,st_day,en_day,st_date,en_date ;------------------------------------------------------------------------------ ; ; Purpose: ; Convert month,day,year into julian date, and character date ; ; Input: ; yr = year (e.g., 1993 or 93) ; ; Output: ; st_day....start day of month (i.e., day of year (1-365), arr(12) ; en_day....last day of month ; st_date...start date of month (i.e., yyyydoy), arr(12) ; en_date...end date of month ; ; Source: Mark Hervig ; ;------------------------------------------------------------------------------ dayoff = [0,31,59,90,120,151,181,212,243,273,304,334,365] st_day = lonarr(12) en_day = lonarr(12) st_date = lonarr(12) en_date = lonarr(12) yyyy = yr ;- look for 2 digit years if (yr le 99 and yr gt 50) then yyyy = 1900+yr if (yr le 50) then yyyy = 2000 + yr ;- adjust for leap year leapyr = yyyy - long(yyyy/4) * 4 for i = 0,12 do if (leapyr eq 0 and i ge 2) then dayoff(i)=dayoff(i)+1 ;- find month start end days for i = 0,11 do begin d1 = dayoff(i ) + 1 d2 = dayoff(i+1) st_day(i) = d1 en_day(i) = d2 st_date(i) = yyyy*1000L + d1 en_date(i) = yyyy*1000L + d2 endfor return end