I’m going to skip v2.0 all together, even though I had the post drafted and the .dll had been available for download for quite sometime. Will just document v3.0 instead, since it is backward compatible and has all the features of v1.0 and v2.0. Ok, what’s new…

This .dll can also return Unix Timestamp in addition to Arma date, i.e the number of seconds since 01.01.1970. It also can output extended date format similar to struct tm in C++, including seconds, day of the week, day of the year and daylight saving information.

At first I was going to simply make .dll return the timestamp on request. But what can you do with just that? If you try to subtract one timestamp from another in Arma, because the timestamp numbers are quite large and because of Arma’s single point precision rounding, the inaccuracy in result could be as much as 2 minutes and will only become greater.

Instead, if you pass a number to the extension, it will subtract it from current system time. So if you pass zero “0″ it will do this: result = UnixTime – 0, and result in this case will be your Unix timestamp. If you save Unix timestamp and then pass it back to the extension, you will get the number of seconds passed since the the obtained Unix timestamp: UnixTime – UnixTimeSaved = seconds since.

If you pass “GMT+” or “+” you will get extended date format, Arma date array followed by seconds, weekday, yearday, dst. Day of the week for example is a number from 0 to 6, 0 being Sunday and 6 being Saturday (check struct tm page for more info).

To summarise all the options available now:

"real_date" callExtension "ABOUT"; //some useless about info with version number "real_date" callExtension "0"; //current unix time stamp minus 0; example: 12344455 "real_date" callExtension "12344453"; //current unix time stamp minus 12344453; example: 2 "real_date" callExtension ""; //local date in Arma format; example: [2014,9,24,21,9] "real_date" callExtension "GMT"; //same as above only in GMT; example: [2014,9,24,20,9] "real_date" callExtension "+"; //ext date with sec, wday, yday, dst; example: [2014,9,24,21,9,57,3,266,0] "real_date" callExtension "GMT+"; //same as above only in GMT; example [2014,9,24,20,9,57,3,266,1]

You can download it from Downloads section or directly from this link.

Enjoy,
KK