On Fri, 10 Jan 2014, Mark Morgan Lloyd wrote:

Michael Van Canneyt wrote:
On Fri, 10 Jan 2014, Mark Morgan Lloyd wrote:

What's the most efficient and portable way of getting a millisecond timestamp, relative to any ancient epoch? I find

TimeStampToMSecs(DateTimeToTimeStamp(Now))

hard to swallow since Now() is hardly efficient and the resulting Comp is marked as non-potable in the documentation.

Where does it say that ?

http://www.freepascal.org/docs-html/prog/progsu157.html#x200-2050008.2.5 "On other processors, the comp type is not supported."

And why do you think now returns a comp ? It returns a double.

http://lazarus-ccr.sourceforge.net/docs/rtl/sysutils/timestamptomsecs.html returns comp.

Yes, my bad, I was referring to "Now".


And I hardly see the point of converting something coming from the hardware and/or a kernel counter to a double and then back to a quadword.

Nevertheless, Now() is the only portable construct available. Multiply it with msecsperday and round to int64 if you need an integer value.

Michael.
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to