This was presented at Devcon 97 by Sue Alchesay.
To calculate elapsed time in Clarion, use both time and date together….. create a real variable, with Clarion standard date on the left side of the decimal point and Clarion standard time on the right side, by dividing it by 8640000. (number of 1/100th of seconds in one day..)
That way, with only one variable, you can do standard calculations and get an age from 1/100th of a second to years, at once, in one single calculation.
Example :
program
map
end
Beginning REAL
Ending REAL
ElapsedTime REAL
ElapsedDays LONG
EndDate LONG
CODE
beginning = Today() + (Clock()/8640000) ! age between now
EndDate = DATE(Month(Today())+1,1,Year(Today())) ! and last day, this month
Ending = EndDate - 1/8640000 ! at midnight (or first 1/100 of second,next month....)
ElapsedDays = INT(Ending) -INT(beginning)
ElapsedTime = Ending - Beginning
Message('We are ' & ElapsedDays & ' Days, and ' & FORMAT(((ElapsedTime-Elapseddays)*8640000),@t4) & ' Hours before Midnight,next month')