「模組討論:文白相雜」:各本之異

由User670839245在話題提议更改上作出的最新留言:五 年前
刪去的內容 新增的內容
User670839245
新文「==提议更改== 我改了下代码,应该能修掉日期bug(见模板討論:文白相雜)。代码如下 <pre>local f = {} f.DATEPATTERN = '([〇一二三四五六七……」
(無異)

二〇一九年一月一四日 (一) 一三時〇二分審

提议更改

我改了下代码,应该能修掉日期bug(见模板討論:文白相雜)。代码如下

local f = {}

f.DATEPATTERN = '([〇一二三四五六七八九]-)年([〇一二三四五六七八九]-)月([〇一二三四五六七八九]-)日 ([一二三四五六日]-) ([〇一二三四五六七八九]-)時([〇一二三四五六七八九]-)分 %(UTC%)'

local function chinese2num(s)
    local str = s
    str = string.gsub(str, '〇', '0')
    str = string.gsub(str, '零', '0')
    str = string.gsub(str, '一', '1')
    str = string.gsub(str, '二', '2')
    str = string.gsub(str, '三', '3')
    str = string.gsub(str, '四', '4')
    str = string.gsub(str, '五', '5')
    str = string.gsub(str, '六', '6')
    str = string.gsub(str, '七', '7')
    str = string.gsub(str, '八', '8')
    str = string.gsub(str, '九', '9')
    return tonumber(str)
end

local function date2num(date)
    local y,m,d,h,min = string.gmatch(date, f.DATEPATTERN)()
    if y and m and d and h and min then
        return os.time({year=chinese2num(y),chinese2num(m),day=chinese2num(d),hour=chinese2num(h),minute=chinese2num(min)})
		--return chinese2num(y)*100000000+chinese2num(m)*1000000+chinese2num(d)*10000+chinese2num(h)*100+chinese2num(min)
    else
        return 0
    end
end

local function curdate()
    --local t = os.date('!*t')
    --return t.year*100000000+t.month*1000000+t.day*10000+t.hour*100+t.min
	return os.time(os.date('!*t'))
end

local function extractdate(text)
    local x, y = text.find(text, f.DATEPATTERN)
    if not x then
        return ''
    end

    local date = string.sub(text, x, y)
    return date
end

function f.getdate(frame)
    local str = frame.args[1] or ''
    return extractdate(str)
end

function f.checkdate(frame)
    local str = frame.args[1] or ''
    local past = date2num(extractdate(str))
    local now = curdate()
    if past ~= 0 and now - past >= 86400*30 then
        return '1'
    else
        return '0'
    end
end

return f

User670839245讨论本地贡献本地封禁 (本地封禁日志) ? 二〇一九年一月一四日 (一) 一三時〇二分 (UTC) 回覆

返「文白相雜」。