pro yyyymmdd_2_julian,yyyymmdd,julian,cdate ;------------------------------------------------------------------------------ ; ; Purpose: ; Convert date as yyyymmdd to julian date, and character date ; Input can be a scalar or an array. ; ; Input: ; yyyymmdd...date, e.g., 19931007 which is October 7, 1993 ; ; Output: ; julian = julian date (e.g., 1993280, which is 7-oct-1993) ; cdate = date as character string (e.g., '10/7/1993') ; ; This routine will turn 2 digit years into 4 digit years, e.g., 99 = 1999 ; ; Source: Mark Hervig ; ;------------------------------------------------------------------------------ nin = n_elements(yyyymmdd) julian = lonarr(nin) cdate = strarr(nin) ;- parse out year, month, and day yy = long(yyyymmdd / 10000L) mm = long(yyyymmdd - yy * 10000L) / 100L dd = long(yyyymmdd - yy * 10000L - mm * 100L) for i=0,nin-1 do begin dayoff = [0,31,59,90,120,151,181,212,243,273,304,334,365] yyyy = yy(i) ;- look for 2 digit years and fix them if (yy(i) le 99 and yy(i) gt 50) then yyyy = 1900 + yy(i) if (yy(i) le 50) then yyyy = 2000 + yy(i) ;- look for leap years leapyr = yyyy - long(yyyy/4) * 4 for im = 0,12 do if (leapyr eq 0 and im ge 2) then dayoff(im)=dayoff(im)+1 ;- compute julian day jd = dayoff(mm(i)-1) + dd(i) julian(i) = yyyy*1000L + jd ;- make a character date cd = strtrim( string( fix(mm(i))) ,2)+$ '/'+strtrim( string( fix(dd(i))) ,2)+$ '/'+strtrim( string( fix(yyyy) ) ,2) cdate(i) = strtrim(string(cd),2) endfor return end