Viewing contents of file '../idllib/ssw/allpro/anytim2weekinfo.pro'
function anytim2weekinfo, times, years, weeks, $
		 first=first, wid=wid, fid=fid, year2digit=year2digit

;+   Name: anytim2weekinfo
;  
;    Purpose: return week-requested information for input time vector
;
;    Input Parameters:
;        times - time vector in any SSW format
;
;    Output Parameters:
;       years - integer year for input times
;       weeks - integer week for input times
;  
;    Output:
;       Function output if /FIRST set, output is YYYYMMDD or YYMMDD (first DOW)
;       Function output if /WID   set, output is YYYY_WW or YY_WW   (weekid) 
;                                                                    DEFAULT
;    Keyword Parameters:
;      wid   - (switch) if set, return 'YYYY_WW' (weekid)  DEFAULT
;      first - (switch) if set, return 'YYYYMMDD' correponding to 1st DOW
;      year2digit (switch) if set, return year as 2 digit (YYMMDD or YY_WW)
;
;    History:
;      29-Jan-1998 - S.L.Freeland - package some common TRACE/YOHKOH/SSW
;                                   time->week conversions
;
;    Routines Called:
;       anytim, anytim2ints, ex2week  
;-
;   ---------- generate some useful conversions -----------
etimes=anytim(times,/ex)                                ; -> external
weeks=ex2week(etimes)                                   ; -> weeks (out)
eweek=week2ex(etimes(6,*),weeks)

; TODO speed up (doy - dow < 0) to handle rollover?
;dow=ex2dow(etimes) 
;firstdow=anytim2ints(etimes,offset= (-dow*86400.)*(dow gt doy)) ; -> fist DOW
; ----------------------------------------------------------------

; --------- function output determined by user keyword -----------
case 1 of
   keyword_set(first): retval=time2file(eweek,/date_only)
   else: retval=strmid(anytim(etimes,/ecs),0,4)+'_'+string(weeks,format='(i2.2)')
endcase
; ----------------------------------------------------------------

mlen=max(strlen(retval))
years=fix(strmid(retval,0,4))                                 ; years (out)
if keyword_set(year2digit) then begin                        ; trim->2digit
    retval=strmid(temporary(retval),2,mlen-2 )               ; on request
    years=years mod 100
endif

return, retval
end