date.sa
Generated by gen_html_sa_files from ICSI. Contact gomes@icsi.berkeley.edu for details
class TIME_MEASURE
class TIME_MEASURE is
attr t0,t0u:INT;
create:SAME is
r:SAME:=new; r.mark; return r;
end;
mark is DATE::sec_usec(out t0,out t0u); end;
elapsed:FLTD is
-- time in sec
t1:INT;
t1u:INT;
DATE::sec_usec(out t1,out t1u);
return (t1-t0).fltd+(t1u-t0u).fltd/(10.0d^6.0d);
end;
end;
class DATE
class DATE is
sec_usec(out sec,out usec:INT) is
s0:REFERENCE:=CDATE::sa_sec_usec;
s1:STR:=STR::create_from_external_string(s0);
sc:STR_CURSOR:=s1.cursor;
sec:=sc.int; usec:=sc.int;
end;
unix_sec:INT is return CDATE::sa_u_time.int; end;
sec:INT is return CDATE::sa_tm_sec.int; end;
min:INT is return CDATE::sa_tm_min.int; end;
hour:INT is return CDATE::sa_tm_hour.int; end;
mday:INT is return CDATE::sa_tm_mday.int; end;
mon:INT is return CDATE::sa_tm_mon.int + 1; end;
year:INT is return CDATE::sa_tm_year.int + 1900; end;
wday:INT is return CDATE::sa_tm_wday.int; end;
yday:INT is return CDATE::sa_tm_yday.int; end;
isdst:INT is return CDATE::sa_tm_isdst.int; end;
end;
external C class CDATE is
sa_tv_mark_time;
sa_tv_difftime:INT; -- time in millisec
sa_sec_usec:REFERENCE; -- sec c.f. gettimeofday(2)
sa_u_time:INT;
sa_tm_sec:INT;
sa_tm_min:INT;
sa_tm_hour:INT;
sa_tm_mday:INT;
sa_tm_mon:INT;
sa_tm_year:INT;
sa_tm_wday:INT;
sa_tm_yday:INT;
sa_tm_isdst:INT;
end;
class TEST_DATE
class TEST_DATE is
main is
#OUT+"sec=["+DATE::sec.str+"]\n";
#OUT+"min=["+DATE::min.str+"]\n";
#OUT+"hour=["+DATE::hour.str+"]\n";
#OUT+"mday=["+DATE::mday.str+"]\n";
#OUT+"mon=["+DATE::mon.str+"]\n";
#OUT+"year=["+DATE::year.str+"]\n";
#OUT+"wday=["+DATE::wday.str+"]\n";
#OUT+"yday=["+DATE::yday.str+"]\n";
#OUT+"isdst=["+DATE::isdst.str+"]\n";
end;
end;