Created
March 14, 2018 06:10
-
-
Save codebykyle/8f3a9f23ea72797785e74aaa8c1ef8bd to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function getVtime(rawVtime) | |
local m = rawVtime % 60 | |
local h = (rawVtime - m)/60 | |
return '%s:%s%s':format(h, (m < 10 and '0' or ''), m) | |
end | |
function getVanadielTime() | |
local basisTime = os.time{year=2002, month=6, day=23, hour=11, min=0} --FFXI epoch | |
local basisDate = os.date('!*t', basisTime) | |
local basisMs = os.time(basisDate)*1000 | |
local now = os.time(os.date('!*t', os.time()))*1000 | |
local msGameDay = (24 * 60 * 60 * 1000 / 25) -- milliseconds in a game day | |
local msRealDay = (24 * 60 * 60 * 1000) -- milliseconds in a real day | |
local vanaDate = ((898 * 360 + 30) * msRealDay) + (now - basisMs) * 25 + 1250000 | |
local vYear = math.floor(vanaDate / (360 * msRealDay)) | |
local vMon = math.floor((vanaDate % (360 * msRealDay)) / (30 * msRealDay)) + 1 | |
local vDate = math.floor((vanaDate % (30 * msRealDay)) / (msRealDay)) + 1 | |
local vHour = math.floor((vanaDate % (msRealDay)) / (60 * 60 * 1000)) | |
local vMin = math.floor((vanaDate % (60 * 60 * 1000)) / (60 * 1000)) | |
local vSec = math.floor((vanaDate % (60 * 1000)) / 1000) | |
local vDay = math.floor((vanaDate % (8 * msRealDay)) / (msRealDay)) | |
local vanaYear = (vYear < 1000) and '0'..vYear or vYear | |
local vanaMon = (vMon < 10) and '0'..vMon or vMon | |
local vanaDate = (vDate < 10) and '0'..vDate or vDate | |
local vanaHour = (vHour < 10) and '0'..vHour or vHour | |
local vanaMin = (vMin < 10) and '0'..vMin or vMin | |
local vanaSec = (vSec < 10) and '0'..vSec or vSec | |
return '%s-%s-%s':format(vanaYear, vanaMon, vanaDate) | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment