gft_robert@gsbacd.uchicago.edu (06/01/90)
I have a couple of questions with regard to manipulation of dates with the
Script Manager:
1) When you fill in a LongDateRec to pass to LongDate2Secs, I don't understand
what you do with some of the fields. I guess you zero .era out, since it's AD,
but what do you do with .pm? Is it 1 for PM, 0 for AM? Doesn't seem to make
much difference what I do with it; .hour seems to determine whether it's am or
pm. And what about .res1,.res2, and .res3? Do I zero them out, or leave them
be?
2) If you just want to use a "default" value for the intlParam parameter in the
IULDateString and IULTimeString calls, what do you fill in? The Script Manager
guide seems to say that if you put 0 into intlParam, you use international
resource 0. So you just pass handle(0) I assume. Seems to work, but is it
right?
3) Is there any new routine which one can use in place of GetDateTime?
GetDateTime returns a longint, which in THINK Pascal is a signed longint, and
thus negative. If there were a routine which returned a LongDateTime, that
would be better. Failing that, does the following routine look OK to convert a
signed longint to a comp (I use such an iterative process to avoid intermediate
overflow values, which seem to pop up if I just do it in one big assignment):
function Long2Comp (long: longint): comp;
{% converts signed long into comp, taking into account overflow of signed long
%}
var
tempComp: comp;
begin
if long < 0 then
begin
tempComp := long;
tempComp := tempComp + 2;
tempComp := tempComp + maxlongint;
tempComp := tempComp + maxlongint;
end
else
tempComp := long;
Long2Comp := tempComp;
end; {Long2Comp}
Any info much appreciated!
Thanks,
Robert
============================================================================
= gft_robert@gsbacd.uchicago.edu * generic disclaimer: * "It's more fun to =
= * all my opinions are * compute" =
= * mine * -Kraftwerk =
============================================================================ccc_ldo@waikato.ac.nz (Lawrence D'Oliveiro, Waikato University) (06/01/90)
I can't answer the rest of Robert's questions, but here's a slightly simpler
Long2Comp function:
Function Long2Comp
(
TheLong : LongInt
) : Comp;
{ converts an unsigned long integer to a Comp. }
Var
Result :
Record
High, Low : LongInt
End {Record};
Begin
Result.High := 0;
Result.Low := TheLong;
Long2Comp := Comp(Result)
End {Long2Comp};
Lawrence D'Oliveiro
Computer Services Dept fone: +64-71-562-889
University of Waikato fax: +64-71-384-066
Hamilton, New Zealand electric mail: ldo@waikato.ac.nz
Parallel lines never meet, unless you bend one or both of them.