FUNCTION GETLast, time ; --------------------------------------------------------------- ; --------------------------------------------------------------- ; ON_ERROR, 2 ;force a return to caller on error count = SIZE(time) nDataUnits = LONG(count(2)) lastT = INTARR(7) ; Mission Leap Years: 80, 84, 88 (366) doy = INTARR(1,nDataUnits) ;days since 1-Jan-80 sod = INTARR(1,nDataUnits) ;seconds of the day since doy mons = [31,28,31,30,31,30,31,31,30,31,30,31] sod = LONG(time(0,*))*3600 + time(1,*)*60 + time(2,*) FOR i=0, nDataUnits-1 DO BEGIN year = time(6,i) mon = time(5,i) CASE 1 OF (year eq 80): BEGIN ;leap yr doy(0,i) = FIX(TOTAL( mons(0:mon-1) ) ) + time(4,i) END (year eq 81): BEGIN doy(0,i) = FIX(TOTAL( mons(0:mon-1) ) ) + time(4,i) + 366 END (year eq 82): BEGIN doy(0,i) = FIX(TOTAL( mons(0:mon-1) ) ) + time(4,i) + 731 END (year eq 83): BEGIN doy(0,i) = FIX(TOTAL( mons(0:mon-1) ) ) + time(4,i) + 996 END (year eq 84): BEGIN ;leap yr doy(0,i) = FIX(TOTAL( mons(0:mon-1) ) ) + time(4,i) + 1361 END (year eq 85): BEGIN doy(0,i) = FIX(TOTAL( mons(0:mon-1) ) ) + time(4,i) + 1727 END (year eq 86): BEGIN doy(0,i) = FIX(TOTAL( mons(0:mon-1) ) ) + time(4,i) + 2092 END (year eq 87): BEGIN doy(0,i) = FIX(TOTAL( mons(0:mon-1) ) ) + time(4,i) + 2457 END (year eq 88): BEGIN ;leap yr doy(0,i) = FIX(TOTAL( mons(0:mon-1) ) ) + time(4,i) + 2822 END (year eq 89): BEGIN doy(0,i) = FIX(TOTAL( mons(0:mon-1) ) ) + time(4,i) + 3188 END (year eq 90): BEGIN doy(0,i) = FIX(TOTAL( mons(0:mon-1) ) ) + time(4,i) + 3553 END (year eq 91): BEGIN doy(0,i) = FIX(TOTAL( mons(0:mon-1) ) ) + time(4,i) + 3918 END (year eq 92): BEGIN ;leap yr doy(0,i) = FIX(TOTAL( mons(0:mon-1) ) ) + time(4,i) + 4283 END (year eq 93): BEGIN doy(0,i) = FIX(TOTAL( mons(0:mon-1) ) ) + time(4,i) + 4649 END (year eq 94): BEGIN doy(0,i) = FIX(TOTAL( mons(0:mon-1) ) ) + time(4,i) + 5014 END (year eq 95): BEGIN doy(0,i) = FIX(TOTAL( mons(0:mon-1) ) ) + time(4,i) + 5379 END (year eq 96): BEGIN ;leap yr doy(0,i) = FIX(TOTAL( mons(0:mon-1) ) ) + time(4,i) + 5744 END (year eq 97): BEGIN doy(0,i) = FIX(TOTAL( mons(0:mon-1) ) ) + time(4,i) + 6110 END ELSE: Print,'Not a valid Year' ENDCASE ENDFOR maxd = max(doy) idxmax = WHERE(maxd eq doy) lend = SIZE(idxmax) IF (lend(1) EQ 1) THEN BEGIN ;There is only one theOne = idxmax(0) ENDIF ELSE BEGIN ;More than one MAX, ck SOD maxs = MAX(sod(idxmax)) idxmaxs = WHERE(maxs EQ sod) lens = SIZE(idxmaxs) IF (lens(1) EQ 1) THEN BEGIN ;there is only one theOne = idxmaxs(0) ENDIF ELSE BEGIN theOne = idxmaxs(0) ;tie!!! pick one ENDELSE ENDELSE lastT(0) = time(*,theOne) RETURN, lastT END