查看“Module:IUCDate”的源代码
←
Module:IUCDate
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您必须确认您的电子邮件地址才能编辑页面。请通过
参数设置
设置并确认您的电子邮件地址。
您可以查看和复制此页面的源代码。
-- 星际统一历日期转换,作者:QWERTY_52_38 local module = {} local getArgs = require('Module:Arguments').getArgs origin = os.time({year=2022,month=4,day=1,hour=22,minute=13}) mic = 9.402 --1微=9.402s function module.test() local now = os.time() mw.log(now) return now end function module.isSpecialYear(year) -- 判断是否要减去1微 if (year % 4 == 0) then return true elseif ((year - 1) % 200 == 0) then return true else return false end end function module.timeDelta(time) -- 与纪元起点的差值 return time - origin end function module.formatDate(dateTable) local a = tostring(dateTable[1]).."轮 "..tostring(dateTable[2]).."分轮 "..tostring(dateTable[3]).."年 "..tostring(dateTable[4]).."季 "..tostring(dateTable[5]).."周 "..tostring(dateTable[6]).."时 "..tostring(dateTable[7]).."微" return a end function module.sec2date(sec) -- 将module.timeDelta得到的差值(单位为秒)转换为星际统一历时间 local micNum = math.floor(sec / mic + 0.00000000001) local yearNum = 0 if micNum >= 99995 then repeat if (module.isSpecialYear(yearNum)) then j = 0 else j = 1 end micNum = micNum - 99995 - j yearNum = yearNum + 1 until (micNum < 99995 + j) end local cycleNum = math.floor(yearNum / 144 + 0.00000000001) yearNum = yearNum - cycleNum * 144 local divisionNum = math.floor(yearNum / 12 + 0.00000000001) yearNum = yearNum - divisionNum * 12 local seasonNum = math.floor(micNum / 10000 + 0.00000000001) micNum = micNum - seasonNum * 10000 local weekNum = math.floor(micNum / 1000 + 0.00000000001) micNum = micNum - weekNum * 1000 local hourNum = math.floor(micNum / 100 + 0.00000000001) micNum = micNum - hourNum * 100 return {cycleNum, divisionNum, yearNum, seasonNum, weekNum, hourNum, micNum} end -- 下面两个是基础代码,不是用来调用的 function module.convert_base(time) return module.sec2date(module.timeDelta(os.time(time))) end function module.convertNow_base(offset) return module.sec2date(module.timeDelta(os.time() + offset * mic)) end -- 下面两个是用来#invoke调用的 function module.convert(frame) local args = getArgs(frame) local time = args[1] return module.formatDate(module.convert_base(time)) end function module.convertNow(frame) local args = getArgs(frame) local offset = args[1] return module.formatDate(module.convertNow_base(offset)) end return module
本页使用的模板:
Module:IUCDate/doc
(
查看源代码
)
返回
Module:IUCDate
。
导航菜单
个人工具
创建账号
登录
命名空间
模块
讨论
English
查看
阅读
查看源代码
查看历史
更多
导航
首页
最近更改
随机页面
社群首页
帮助
希顶相关网站
希顶社区官网
(原作)希顶翻译器
〇改希顶转写器
希顶模组服务器
工具
链入页面
相关更改
特殊页面
页面信息