function yyyymmdd_2_decyr,yyyymmdd ;------------------------------------------------------------------------------ ; ; Purpose: ; Convert date as yyyymmdd to decimal year, i.e. 2002.5 ; ; Input: ; yyyymmdd...date, e.g., 19931007 which is October 7, 1993 ; ; Output: ; result.....date as yyyy.yy ; ; This routine will turn 2 digit years into 4 digit years, e.g., 99 = 1999 ; ; Source: Mark Hervig ; ;------------------------------------------------------------------------------ nin = n_elements(yyyymmdd) result = fltarr(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 nday = 365. if (leapyr eq 0) then nday = 366. ;- compute julian day jd = dayoff(mm(i)-1) + dd(i) - 0.5 result(i) = yyyy + jd/nday endfor return,result ;- done end