2015-05-22 4 views
0

Хорошо, мне очень нужна дата автоматизации OLE в lua.OLE Дата автоматизации в lua

От here:

общественности двойной ToOADate()

Возвращаемое значение Тип: System.Double с двойной точностью с плавающей точкой номер, который содержит дату эквивалент OLE Automation на значение этот экземпляр.

Таким образом, в C# это:

Console.Write("DateTime.Now.ToOADate() = " + DateTime.Now.ToOADate()); 

дает мне это:

DateTime.Now.ToOADate() = 42146,4748270602 

Что является лучшим способом, чтобы получить Двойники значение в Lua?

+0

Является ли это просто число дней с 1900 года? –

+0

@EgorSkriptunoff с 30.12.1899, да. –

+1

В Lua 'os.time()' дает количество секунд с 1970 года. Вы можете легко преобразовать его в количество дней. –

ответ

1

Более подробная информация на основе ответа EgorSkriptunoff.

Итак, что Lua код прекрасно работает для меня, чтобы получить дату OLE Automation в Lua:

-- number of days between December, 30 1899 and January, 1 1970 
local magicnumber = 25569 
-- don't forget about time zone (UTC+3 for my case) 
local utcshift = 3*3600 
-- calc and print for test 
local oleadate = magicnumber + ((os.time()+utcshift)/(3600*24)) 
print(oleadate) 

Выход:

42146.575740741