Skip to content

Instantly share code, notes, and snippets.

@codebykyle
Created March 14, 2018 06:10
Show Gist options
  • Save codebykyle/8f3a9f23ea72797785e74aaa8c1ef8bd to your computer and use it in GitHub Desktop.
Save codebykyle/8f3a9f23ea72797785e74aaa8c1ef8bd to your computer and use it in GitHub Desktop.
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