 |
The Question is:
The DCL calls:
$ sho time
29-MAR-2000 10:04:06
$ write sys$output
"/",f$cvtime("today+4",,"HOUR"),"/",f$cvtime("today"+4,,"HOUR"),"/"
/04/05/
Why this 1 hour difference? How is f$cvtime("today"-1) translated?
I expected yesterday's 23:00:00.00.
More:
$ write sys$output
"/",f$cvtime("today-1",,"HOUR"),"/",f$cvtime("today"-1,,"HOUR"),"/"
/23/00/
$ write sys$output
"/",f$cvtime("today-1",,"HOUR"),"/",f$cvtime("today"-2,,"HOUR"),"/"
/23/09/
Does format like f$cvtime("today"-1) means that I get en unpredictible result?
The Answer is :
Does the following simplification of the behaviour help you understand
what is going on here?
$ x = "/" + "today" + 4 + "/"
$ show symbol x
X = 4 Hex = 00000004 Octal = 00000000004
$ write sys$output "''f$type(x)'"
INTEGER
$ x = "/" + "today+4" + "/"
$ show symbol x
X = "/today+4/today+4/"
$ write sys$output "''f$type(x)'"
STRING
The f$cvtime lexical is not particularly relevent here, this particular
behaviour is an artifact of DCL symbols and of DCL string handling.
|