Module:Sandbox/RDKTSR/EMTS: Difference between revisions
< Module:Sandbox | RDKTSR
imported>RDKTSR No edit summary |
(No difference)
|
Latest revision as of 12:55, 28 March 2020
Documentation for this module may be created at Module:Sandbox/RDKTSR/EMTS/doc
local p = {}
local DOM = {31,28,31,30,31,30,31,31,30,31,30,31}
local DWN = {"Mo","Tu","We","Th","Fr","Sa","Su"}
function SUBT(A,B,C) return string.sub(tostring(A),B,C) end
function FLR(A) return math.floor(A) end
function LY_CHECK(year) if(year % 400 == 0) then return true else if(year % 100 == 0) then return false else if(year % 4 == 0) then return true end end end return false
end
local EMTSMN={
"Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Thetha","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron",
"Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega","Alfa","Bravo","Charlie","Delta","Echo","Foxtrot","Golf",
"Hotel","Indy","Juliett","Kilo","Lima","Mike","Nova","Oscar","Papo","Quilt","Romeo","Siesta","Tango","Uniform","Vims","Whistle",
"Xeorx","Yumi","Zulu","Zen","Bloxxer","Rex","Raptor"}
local ZGNL = {"Zerozat","Onezat","Twozat","Threezat","Fourzat","Fivezat","Sixzat"}
local EGNL = {"Zerode","Onede","Twode","Threede","Fourde","Fivede","Sixede","Sevende","Eightde","Ninede"}
local CGNL = {"Zeroer","Oner","Twoer","Threer","Fourer","Fiver","Sixer","Sevener","Eighter","Niner"}
function ELTFORMAT(ELTBASE)
local ELT_THOU=FLR(ELTBASE*1000)%1000
local ELT_1u = FLR(ELTBASE/1)%1000
local ELT_1k = FLR(ELTBASE/1e3)%1000
local ELT_1m = FLR(ELTBASE/1e6)%1000
local ELT_1n = FLR(ELTBASE/1e9)%1000
local ELT_1t = FLR(ELTBASE/1e12)%1000
return ELT_1t..","..
SUBT(ELT_1n+1000,2,4)..","..
SUBT(ELT_1m+1000,2,4)..","..
SUBT(ELT_1k+1000,2,4)..","..
SUBT(ELT_1u+1000,2,4).."."..
SUBT((ELT_THOU + 1000),2, 4)
end
function EMTS(TIME)
local SYR = 365.2425
local LUN = 29.530589
local TIMEY = TIME/86400
local SYR = 365.2425
local LUN = 29.530589
local TIMEYL = FLR(TIMEY + 25567)
local TIMEYLW = FLR(TIMEYL/7)*7
local TIMEYW = FLR((TIMEY+354280)/7)*7
local TIMEYD = FLR(TIMEY) - 10957
local TIMEYW1 = FLR((TIMEYD-366)/7)*7
TIMEYE = math.floor(TIMEY) + 354285
TIMEYS = TIMEYD-79
YRE = TIMEYS/SYR+1000
YRC = YRE+0.25
YRW = YRC+0.125
LUNE=math.floor(TIMEYL / LUN)+11131
LUNA=LUNE-633
XRE = math.floor((YRE%1) * SYR)
XRC = math.floor((YRC%1) * SYR)
XRW = math.floor((YRW%1) * SYR)
LUNR = EMTSMN[math.floor(LUNA % (SYR / LUN))+1]
CELTICMONTH = {"Birch","Rowan","Ash","Alder","Willow","Hawthorn","Oak","Holly","Hazel","Vine","Ivy","Reed","Elder"}
WICCANMONTH = {"Samhain","Yule","Imbolc","Ostra","Bectane","Litha","Lughnasadn","Mabon"}
ZODIACMONTH = {"Aries","Taurus","Gemeni","Cancer","Leo","Virgo","Libra","Scorpio","Sagittarius","Capricorn","Aquarius","Pisces"}
CELTICDATE = "CELTIC: "..CELTICMONTH[(math.floor(XRC/(SYR/13)))+1] .." "..(math.floor(XRC%(SYR/13))+1) ..", EY"..math.floor(YRC)
WICCANDATE = "WICCAN: "..WICCANMONTH[(math.floor(XRW/(SYR/ 8)))+1] .." "..(math.floor(XRW%(SYR/ 8))+1) ..", EY"..math.floor(YRW)
ZODIACDATE = "ZODIAC: "..ZODIACMONTH[(math.floor(XRE/(SYR/12)))+1] .." "..(math.floor(XRE%(SYR/12))+1) ..", EY"..math.floor(YRE)
LUNARDATE = "LUNISOL: "..LUNR .." "..(math.floor(TIMEYL%LUN)+1) ..", EY"..math.floor((LUNA/(SYR/LUN))+51)
ASSEDR = ZODIACDATE.." / "..LUNARDATE.."<br>"..WICCANDATE.." / "..CELTICDATE
local ELSC = EMTSMN[FLR(FLR(TIMEYL / LUN) % (SYR / LUN)) + 1]..
" "..(FLR(TIMEYL % LUN) + 1)..
" "..(FLR(FLR(TIMEYL / LUN) / (SYR / LUN)) + 900)..
" ELSC"
local ELC = EMTSMN[FLR((FLR(TIMEYL / LUN) + 11131) % 12) + 1]..
" "..(FLR(TIMEYL % LUN) + 1)..
" "..FLR((FLR(TIMEYL / LUN) + 11131) / 12)..
" ELC"
local ELXC =EMTSMN[FLR(FLR(TIMEYLW / LUN) % (SYR / LUN)) + 1]..
" "..(FLR((TIMEYLW % LUN)/7)*7+FLR((TIMEY+3)%7)+1)..
" ".. (FLR(FLR(TIMEYLW / LUN) / (SYR / LUN)) + 900)..
" ELXC"
local ELWC = EMTSMN[FLR((FLR(TIMEYLW / LUN) + 11131) % 12) + 1]..
" ".. (FLR((TIMEYLW % LUN)/7)*7+FLR((TIMEY+3)%7)+1)..
" " .. FLR((FLR(TIMEYLW / LUN) + 11131) / 12)..
" ELWC"
local DOYF = SYR
local DOYR = SYR
local EWC = EMTSMN[FLR(FLR(TIMEYW1 % SYR) / (DOYF / 12)) + 1]..
" ".. ((FLR(FLR(FLR(TIMEYW1 % SYR) % (DOYF / 12)) / 7)*7)+FLR((TIMEY+3)%7)+1)..
" " .. FLR(TIMEYW1 / SYR + 1001)..
" EWC"
local EWDC = EMTSMN[FLR(FLR(TIMEYW1 % SYR) / (DOYF / 10)) + 1]..
" ".. ((FLR(FLR(FLR(TIMEYW1 % SYR) % (DOYF / 10)) / 7)*7)+FLR((TIMEY+3)%7)+1)..
" " .. FLR(TIMEYW1 / SYR + 1001)..
" EWDC"
local EMD1 = FLR((FLR(TIMEY) - 10957) / 100)..
"."..SUBT((FLR((FLR(TIMEY) - 10957) % 100) + 100),2, 3)..
" EMD.M MLE"
local ZYCLE = "Z"..FLR((FLR(TIMEY) - 10957) / 70)..
"."..SUBT((FLR((FLR(TIMEY) - 10957) % 70) + 100),2, 3)
local EMD2 = FLR((FLR(TIMEY) + 354285) / 1000)..
"."..FLR(((FLR(TIMEY) + 354285) / 100) % 10)..
"."..SUBT((FLR((FLR(TIMEY) + 354285) % 100) + 100),2, 3)..
" EMD.E ELE"
local EMD = EMD1.."/"..EMD2
local EMDspeech = FLR((FLR(TIMEY) - 10957) / 100)..
" "..SUBT((FLR((FLR(TIMEY) - 10957) % 100) + 100),2, 3).." E M D Millenial"..
" "..FLR((FLR(TIMEY) + 354285) / 1000)..
" "..FLR(((FLR(TIMEY) + 354285) / 100) % 10)..
" "..SUBT((FLR((FLR(TIMEY) + 354285) % 100) + 100),2, 3).." EMD Elite"
local ELD1 = "E/EY"..(FLR((FLR(TIMEY) - 10957) / SYR) + 1000).." EE ED"..SUBT((FLR(TIMEYD % SYR) + 1000),2, 4)
local ELD2 = "ZL"..SUBT(FLR((FLR(TIMEYD % SYR)+(7-((FLR(TIMEYD % SYR)-FLR((TIMEY+3)%7)+7)%7)))/7)+100,2,3)..
" EW"..SUBT(FLR(FLR(TIMEYD % SYR) / 10)+100,2,3)..
" ZG"..((FLR(TIMEY) - 4) % 7)..
" EG"..FLR(FLR((FLR(TIMEY) - 10957) % SYR) % 10)..
" CG"..FLR(((FLR(TIMEY) + 354285)) % 10)
local ELD3 = EMTSMN[FLR((FLR(TIMEYD % SYR)+(7-((FLR(TIMEYD % SYR)-FLR((TIMEY+3)%7)+7)%7)))/7)+1]..
"-"..EMTSMN[FLR(FLR(TIMEYD % SYR) / 10)+1]..
"/"..ZGNL[((FLR(TIMEY) - 4) % 7)+1]..
"-"..EGNL[FLR(FLR((FLR(TIMEY) - 10957) % SYR) % 10)+1]..
"-"..CGNL[FLR(((FLR(TIMEY) + 354285)) % 10)+1]
local ELD = ELD1.." "..ELD2
local ESC = EMTSMN[FLR(FLR(TIMEYD % SYR) / (DOYR / 12)) + 1]..
" ".. (FLR(FLR(TIMEYD % SYR) % (DOYR / 12)) + 1)..
" "..(FLR((FLR(TIMEY) - 10957) / SYR) + 1000)..
" ESC"
local EDC = EMTSMN[FLR(FLR(TIMEYD % SYR) / (DOYR / 10)) + 1]..
" "..(FLR(FLR(TIMEYD % SYR) % (DOYR / 10)) + 1)..
" "..(FLR((FLR(TIMEY) - 10957) / SYR) + 1000)..
" EDC"
local SEDT = FLR(TIMEY)
.."."..SUBT((FLR(((TIMEY) * 1000) % 1000 + 1000)),2, 4)
.." "..SUBT((FLR(((TIMEY) * 1000000) % 1000 + 1000)),2, 4)..
" rm SEDT"
local SEDT1 = FLR(TIMEY).." rams S E D T"
local ELTBASE = (TIMEY+354285)/SYR*1e9+0.0005
local ELT = ELTFORMAT(ELTBASE).." tm ELT"
local ZD = FLR((4371952 + FLR(TIMEY)) / 1000000)..","..
SUBT(FLR((4371952 + FLR(TIMEY)) / 1000 % 1000)+1000,2,4)..","..
SUBT(FLR((4371952 + FLR(TIMEY)) % 1000) +1000,2,4)
.." ZD"
local XD = FLR((FLR(TIMEY) + 354285) / 400)..
"."..(FLR((FLR(TIMEY) + 354285) / 40) % 10)..
".".. SUBT((FLR(TIMEY + 354285) % 40)+100,2,3)..
" XD"
local XXD = (FLR(TIMEYW / 40) % 10)..
".".. SUBT(((FLR((TIMEYW % 40)/7)*7)+FLR((TIMEY+3)%7)+1)+100,2,3)..
" XXD"
local XLD = SUBT(FLR((FLR(TIMEYL / LUN) + 11132) % (400 / LUN)) + 100,2,3)..
".".. SUBT(FLR(TIMEYL % LUN)+100,2,3)..
" XLD"
local XLXD = SUBT(FLR((FLR(TIMEYLW / LUN) + 11132) % (400 / LUN)) + 100,2,3)..
".".. SUBT((FLR((TIMEYLW % LUN)/7)*7+FLR((TIMEY+3)%7))+100,2,3)..
" XLXD"
local XD1 = (FLR((FLR(TIMEY) + 354285) / 40) % 10).." ".. (FLR(TIMEY + 354285) % 40)..
" Xen date on xen year "..FLR((FLR(TIMEY) + 354285) / 400)
local XXD1 = (FLR(TIMEYW / 40) % 10).." "..((FLR((TIMEYW % 40)/7)*7)+FLR((TIMEY+3)%7)+1).." X X D"
local XLD1 = FLR((FLR(TIMEYL / LUN) + 11132) % (400 / LUN)).." ".. FLR(TIMEYL % LUN).." X L D"
local XLXD1 = FLR((FLR(TIMEYLW / LUN) + 11132) % (400 / LUN)).." "..(FLR((TIMEYLW % LUN)/7)*7+FLR((TIMEY+3)%7)).." X L X D"
local XT = SUBT((((TIMEY) % 1) * 20 + 100),2, 3)..":"..
SUBT(((((TIMEY) % 1) * 20 * 50) % 50 + 100),2, 3).."."..
SUBT(((((TIMEY) % 1) * 20 * 50 * 100) % 100 + 100),2, 3).."'"..
SUBT(((((TIMEY) % 1) * 20 * 50 * 100 * 100) % 100 + 100),2, 3).."\" XT"
local ECX = SUBT((((TIMEY) % 1) * 96 + 100),2, 3).."."..
SUBT(((((TIMEY) % 1) * 96 * 100) % 100 + 100),2, 3).."'"..
SUBT(((((TIMEY) % 1) * 96 * 100 * 100) % 100 + 100),2, 3).."\""..
SUBT(((((TIMEY) % 1) * 96 * 100 * 100 * 100) % 100 + 100),2, 3).." ECX "
local EXT = SUBT((((TIMEY) % 1) * 24 + 100),2, 3).."."..
SUBT(((((TIMEY) % 1) * 24 * 100) % 100 + 100),2, 3).."'"..
SUBT(((((TIMEY) % 1) * 24 * 100 * 100) % 100 + 100),2, 3).."\""..
SUBT(((((TIMEY) % 1) * 24 * 100 * 100 * 100) % 100 + 100),2, 3).." EXT"
local SPT = SUBT(FLR((FLR(TIMEY) - 9131) / 1000)+100,2,3).."."..
FLR(((FLR(TIMEY) - 9131) / 100) % 10).."."..
SUBT(FLR((FLR(TIMEY) - 9131) % 100)+100,2,3).." "..
SUBT((((TIMEY) % 1) * 100 + 100),2, 3).."."..
SUBT(((((TIMEY) % 1) * 100 * 100) % 100 + 100),2, 3).."'"..
SUBT(((((TIMEY) % 1) * 100 * 100 * 100) % 100 + 100),2, 3).."\""..
SUBT(((((TIMEY) % 1) * 100 * 100 * 100 * 100) % 100 + 100),2, 3).." SPT"
local WCT = SUBT(FLR((FLR(TIMEY) - 9131) / 400 )+100,2,3).."."..
FLR(((FLR(TIMEY) - 9131) / 40) % 10).."."..
SUBT(FLR((FLR(TIMEY) - 9131) % 40)+100,2,3).." "..
SUBT((((TIMEY) % 1) * 40 + 100),2, 3).."."..
SUBT(((((TIMEY) % 1) * 40 * 100) % 100 + 100),2, 3).."'"..
SUBT(((((TIMEY) % 1) * 40 * 100 * 100) % 100 + 100),2, 3).."\""..
SUBT(((((TIMEY) % 1) * 40 * 100 * 100 * 100) % 100 + 100),2, 3).." WCT"
local Chois = SUBT((FLR((((TIMEY) * 100) % 100)) + 100),2, 3)
local doCh = (FLR((((TIMEY) * 100) % 100) * 10) % 10)
local koCh = SUBT((FLR((((TIMEY) * 100) % 100) * 1000) % 100 + 100),2, 3).." "..SUBT((FLR((((TIMEY) * 100) % 100) * 1000000) % 1000 + 1000),2, 4)
local UHR = (FLR((FLR(TIME/3600)%24)/10))..(FLR((FLR(TIME/3600)%24)%10))
local DIN = (FLR((FLR(TIME/36)%100)/10))..(FLR((FLR(TIME/36)%100)%10))
local DES1 = (FLR((FLR(TIME/0.36)%100)/10))..(FLR((FLR(TIME/0.36)%100)%10))
local DES2 = (FLR((FLR(TIME/0.36*100)%36)/10))..(FLR((FLR(TIME/0.36*100)%36)%10))
EMT=Chois.."."..doCh..koCh.." ".."EMT"
TRX=UHR.."."..DIN..":"..DES1.."."..DES2.." ".."TRX"
local MDIN1 = (FLR((FLR(TIME/86400*64)%64)/10)) ..(FLR((FLR(TIME/86400*64)%64)%10))
local MDIN2 = (FLR((FLR(TIME/86400*6400)%100)/10)) ..(FLR((FLR(TIME/86400*6400)%100)%10))
local MDES1 = (FLR((FLR(TIME/86400*640000)%100)/10)) ..(FLR((FLR(TIME/86400*640000)%100)%10))
local MDES2 = (FLR((FLR(TIME/86400*64000000)%100)/10))..(FLR((FLR(TIME/86400*64000000)%100)%10))
MILTIME = MDIN1.."."..MDIN2..":"..MDES1.."."..MDES2.." MLT"
return "<br>"..EMT.."/"..TRX.."/"..MILTIME.."<br>"..
ELD.."<br>"..ELD3.."<br>"..EMD.."/"..ZYCLE.."<br>"..ESC.."/"..EDC
.."<br>"..ELSC.."/"..ELC.."<br>"..EWC.."/"..EWDC
.."<br>"..ELXC.."/"..ELWC.."<br>"..ASSEDR.."<br>"..
XD.." - "..XLD.." - "..XXD.." - "..XLXD.."<br>"..SEDT.." - "..ZD.."<br>"..ELT.."<br>"..
ECX.." - "..EXT.." - "..XT.."<br>"..SPT.." - "..WCT
end
function CLK(UTIME,TZ,TZN)
local LTIME = UTIME+(TZ*3600)
local LHR = (FLR((FLR(LTIME/3600)%24)/10))..(FLR((FLR(LTIME/3600)%24)%10))
local UHR = (FLR((FLR(UTIME/3600)%24)/10))..(FLR((FLR(UTIME/3600)%24)%10))
local MIN = (FLR((FLR(LTIME/60)%60)/10))..(FLR((FLR(LTIME/60)%60)%10))
local SEC = (FLR((FLR(LTIME)%60)/10))..(FLR((FLR(LTIME)%60)%10))
local DC = FLR(LTIME/86400)
DOM[2] = 28 + ((LY_CHECK(FLR((DC+719528)/365.2425)) and 1) or 0)
local DAY = FLR((DC+719528)%365.2425)+1
local MONTH = 0
for i, v in pairs(DOM) do if(DAY > v) then DAY = DAY - v else MONTH = i break end end
local currentdate = (FLR((FLR(DC+FLR(1970*365.2425))+1)/365.2425)).."."..(string.sub(MONTH+100,2,3)).."."..(string.sub(DAY+100,2,3)).."-"..(DWN[(FLR(DC+3)%7)+1])
return currentdate.." "..LHR..":"..MIN..":"..SEC.." "..TZN
end
function p.emts()
return EMTS(os.time())
end
function p.timestamp(frame)
return CLK(os.time(),frame.args[1],frame.args[2])
end
return p