欢迎来到奇葩栖息地!欢迎加入Discord服务器:XfrfHCzfbW请先至特殊:参数设置验证邮箱后再进行编辑。特殊:参数设置挑选自己想要使用的小工具!不会编辑?请至这里学习Wikitext语法。

模块:Chinese calendar:修订间差异

来自奇葩栖息地
添加402字节 、​ 2025年1月7日 (星期二)
//Edit via InPageEdit
无编辑摘要
标签已被回退
(//Edit via InPageEdit)
标签已被回退
第286行:
if y < 1900 or y > 2100 then return 0 end
if m > 12 or m < 1 then return 0 end
-- 修改: 使用 rshift 函数代替 >> 运算符
return band(lunarInfo[y - 1900], rshift(0x10000, m - 1)) ~= 0 and 30 or 29
end
第313行 ⟶ 第312行:
end
 
-- 计算距离1900年1月30日的天数
-- 修改: 使用正确的基准日期计算方法
local baseDatemonthDays = os.time({31, year28, =31, 190030, month31, =30, 131, day31, =30, 31, 30, 31})
local targetDateoffset = os.time({-30 year-- = y, month = m, day = d })1900年1月30日为基准日期
local offset = math.floor((targetDate - baseDate) / (24 * 60 * 60))
 
-- 修改: 处理1900计算1月31日之前日期天数贡献
iffor offseti <= 01900, theny - 1 do
if (i % 4 == 0 and i % 100 ~= 0) or (i % 400 == 0) then
return "日期超出范围(1900-2100)"
offset = offset + 366
else
offset = offset + 365
end
end
 
-- 计算月份的天数贡献
for i = 1, m - 1 do
if i == 2 then
if (y % 4 == 0 and y % 100 ~= 0) or (y % 400 == 0) then
offset = offset + 29
else
offset = offset + 28
end
else
offset = offset + monthDays[i]
end
end
 
-- 加上当月天数
offset = offset + d
 
-- 计算农历年
第336行 ⟶ 第354行:
end
 
-- 计算农历月
local lm = 1
local isLeap = false
local leap = leapMonth(ly)
local isLeap = false
 
--temp 计算月= 0
while offset > 0 and lm < 13 do
if leap > 0 and lm == leap + 1 and not isLeap then
第351行 ⟶ 第369行:
end
offset = offset - temp
if isLeapnot (leap > 0 and lm == leap + 1 thenand isLeap) = false endthen
lm = lm + 1
end
if lm == leap + 1 then
isLeap = false
end
end
 
-- 修正月份和日期
if offset < 0 then
offset = offset + temp
第361行 ⟶ 第382行:
end
 
-- 计算农历
local ld = offset + 1
 
-- 返回格式化输出结果
local gzYear = Gan[((ly - 4) % 10) + 1] .. Zhi[((ly - 4) % 12) + 1]
local lMonth = nStr3[lm]
第375行 ⟶ 第396行:
lDay = "三十"
else
lDay = nStr2[math.floor(ld / 10) + 1] .. nStr1[(ld % 10) + 1]
end
 
2,099

个编辑