1. rldate
--From Irv
--Actually, Ralf, you can avoid building that text string,
--by doing it as follows:
-- rldate.e------------
--From Art
--I probably missed a final chapter of rldate...but when I got to it, it
--needed a mod for 10th, 20th, 30th. Here is my fix. Sorry if it is a duplicate
--Art Adamson, euclid at isoc.net
constant
DAYS = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"},
MONTHS = {"January","February","March","April","May","June",
PF = {"st","nd","rd","th"}
global function rldate ()
sequence date_seq, post
integer flag
date_seq = date ()
date_seq[3] = date_seq[3] -- for testing + 16
flag = remainder(date_seq[3],10)
if (flag < 4 and flag > 0) then
post = PF[flag]
else post = PF[4]
end if
return sprintf("%s %s %d%s, %4d",
{DAYS[date_seq[7]], MONTHS[date_seq[2]], date_seq[3],
post, date_seq[1]+1900})
end function
-- end of rldate.e---------------
puts(1,rldate())