请输入您要查询的百科知识:

 

词条 Module:Interval
释义 -- This module powers {{interval}}.

local p = {}

-- Constants

local lang = mw.language.getContentLanguage()

local getArgs = require('Module:Arguments').getArgs

local function getArgNums(args)

    -- Returns an array containing the keys of all positional arguments    -- that contain data (i.e. non-whitespace values).    -- (from Module:Unbulleted_list)    local nums = {}    for k, v in pairs(args) do        if type(k) == 'number' and            k >= 1 and            math.floor(k) == k and            mw.ustring.match(v, '%S') then                table.insert(nums, k)        end    end    table.sort(nums)    return nums

end

function p.main(frame)

    local args = getArgs(frame)    return p._main(args)

end

function p._main(args)

    local n, rule, format = args.n, args.rule, args.format    local numbers = getArgNums(args)    local low, high, lowpos, highpos = nil, nil, 0, #numbers + 1
    -- If comparing times, convert them all to seconds after the epoch    if format == 'time' then        if n then            n = lang:formatDate('U', '@' .. n)        else            n = os.time() -- Set n to now if no time provided        end    end
    for i, num in ipairs(numbers) do        local interval        if format == 'time' then            interval = tonumber(lang:formatDate('U', '@' .. args[num]))        else            interval = tonumber(args[num])        end
        if n and ((n >= interval and not rule) or (n > interval and rule == '>')) then            low = interval            lowpos = num        else            high = high and math.min(interval, high) or interval            if high == interval then highpos = num end        end    end    return lowpos .. '-' .. highpos

end

return p

随便看

 

开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/9/22 9:31:10