data time1 time2(drop=dtl dth);
set time;
h=hour(time);
m=minute(time);
s=second(time);
datetime=dhms(date,h,m,s);
if Lt=. then do;
dtl=datetime-3600*24;
dth=datetime+3600*24;
end;
if lt=. then output time1;
else output time2;
drop h m s;
run;
proc sort data=time1;
by dtl;
run;
proc sort data=time2;
by datetime;
run;
data s1;
merge time1(in=a) time2(rename=(datetime=dtl lt=ltl)) ;
by dtl;
if a;
run;
data s2;
merge s1(in=a) time2(rename=(datetime=dth lt=lth)) ;
by dth;
if a;
lt=mean(ltl,lth);
drop dtl dth ltl lth;
run;
data time1 time2(drop=dtl dth);
set time;
h=hour(time);
m=minute(time);
s=second(time);
datetime=dhms(date,h,m,s);
if Lt=. then do;
dtl=datetime-3600*24;
dth=datetime+3600*24;
end;
if lt=. then output time1;
else output time2;
drop h m s;
run;
data t1;
set time1;
do i=1 to all;
set time2( rename=(datetime=dt lt=ltl)) nobs=all point=i;
if dtl=dt then output;end;
drop dt;
run;
data t2;
set t1;
do i=1 to all;
set time2( rename=(datetime=dt lt=lth)) nobs=all point=i;
if dth=dt then output;
end;
drop dt dtl dth;
run;
data t3;
set t2;
lt=mean(ltl,lth);
drop ltl lth;
run;
data sum;
set t3 time2;
run;
proc sort data=sum out=sum1(drop=datetime) ;
BY datetime;
RUN;