Viewing contents of file '../idllib/ssw/allpro/adjust_times.pro'
pro adjust_times, t0, t1, text, status=status, deltat=deltat, $
maxdays=maxdays, timerange=timerange, earliest=earliest, lastest=latest
;+
; Name: adjust_times
;
; Purpose: check input times and adjust if required
;
; Input Parameters:
; t0 - start time - any Yohkoh format
; t1 - stop time
;
; Output Parameters:
; t0 - start time (adjusted) ; output is always Yohkoh string format
; t1 - stop time (adjusted)
;
; Keyword Parameters
; maxdays - if set, maximum number of days allowed (t1-t0)
; timerange - 2 element vector; force times to fall in this range
; earliest - same as timerange(0)
; latest - same as timerange(1)
; status (output) - true (1) if no problems, false (0) if problems/adjust.
; deltat (output) - delta Time (seconds between final output times)
;
; History:
; 28-sep-1995 (S.L.Freeland) to simplify checking WWW form times
;
; Warning - input times may be clobbered (I mean adjusted)
;-
text="" ; problem/action reporting
case 1 of
n_elements(t0) eq 0: begin
text=[text,"No Times entered, Using Start=UT (now), Stop=Start+ 24 hour"]
t0=ut_time()
t1=timegrid(t0,/day,/string)
endcase
n_elements(t1) eq 0: t1=t0
else:
endcase
secs=int2secarr(anytim2ints([t0,t1])) ;
if n_elements(timerange) eq 2 then begin
if not keyword_set(earliest) then earliest=timerange(0)
if not keyword_set(latest) then latest=timerange(1)
endif
if secs(1) lt 0 then begin
text=[text,"Stop time precedes start time, swapping times"]
secs=abs(secs)
temp=t0
t0=t1
t1=temp
endif
if keyword_set(maxdays) then begin
if secs(1) gt maxdays*86400. then begin
t1=timegrid(t0,days=maxdays,/string)
text=[text,"","Delta-Time (Stop Time - Start Time) exceeded maximum allowed (" + $
strtrim(maxdays,2) + " days)", "Reset Stop time to " + t1 ]
endif
endif
if not keyword_set(earliest) then earliest=t0
if not keyword_set(latest) then latest=t1
; set everything to strings
earliest=fmt_tim(earliest)
lastest=fmt_tim(latest)
t0=fmt_tim(t0)
t1=fmt_tim(t1)
if (int2secarr(t0,earliest))(0) lt 0 then begin
text=[text,"","Start time precedes start of time range, set to " + earliest]
t0=earliest
endif
if (int2secarr(t1,latest))(0) gt 0 then begin
text=[text,"","Stop time after end of allowed range; set to " + latest]
t1=latest
endif
; recheck
if (int2secarr([t0,t1]))(1) lt 0 then begin
text=["","Problem adjusting times (outside of range); ", $
"Setting Start Time -> Timerange start and Stop Time -> Start + 24 hours"]
t0=earliest
t1=timegrid(t0,/day,/string)
endif
deltat=abs(total(int2secarr([t0,t1])))
status=n_elements(text) eq 1
if not status then text=text(1:*) ; get rid of initial null
return
end