Mô đun:Duration

local p = {}

function p._error( error_str )
    return '[[Thể loại:Thời lượng có lỗi đầu vào]]<strong class="error">Lỗi trong Mô đun:Duration: ' .. error_str .. '</strong>'
end

function p.main(frame)
	local args = require('Mô đun:Arguments').getArgs(frame, {wrappers = {'Bản mẫu:Duration', 'Bản mẫu:Duration/sandbox'}})
	local tmp = args.duration or args[1] or ''
	local duration = {}
	if tonumber(args[1]) or args[2] or args[3] then
		if args[4] then return p._error('Tham số số 4 không nên được chỉ định') end
		if not args[1] or args[1] == '' then
			duration = {args[2] or 0, args[3] or 0}
		else
			duration = {args[1], args[2] or 0, args[3] or 0}
		end
		tmp = nil
		for k, v in ipairs(duration) do
			duration[k] = tonumber(v)
			if not duration[k] then return p._error('Giá trị không hợp lệ') end
		end
	elseif args.h or args.m or args.s then
		if not args.h or args.h == '' then
			duration = {args.m or 0, args.s or 0}
		else
			duration = {args.h, args.m or 0, args.s or 0}
		end
		tmp = nil
		for k, v in ipairs(duration) do
			duration[k] = tonumber(v)
			if not duration[k] then return p._error('Giá trị không hợp lệ') end
		end
	else
		if mw.ustring.find(tmp, 'class="duration"', 1, yes) then return tmp end -- if there is already a microformat, don't do anything
		duration = mw.text.split(mw.ustring.match(tmp, '%d*:?%d+:%d+%.?%d*') or '', ':') -- split into table
		if duration[4] then return p._error('Cho phép tối đa hai dấu hai chấm') end
		for k, v in ipairs(duration) do duration[k] = tonumber(v) or 0 end -- convert values to numbers
	end
	if duration[3] then
		if (duration[1] + duration[2] + duration[3]) == 0 then return nil end
		if (duration[1] ~= math.ceil(duration[1])) or (duration[2] ~= math.ceil(duration[2])) then return p._error('Giá trị giờ và phút phải là số nguyên') end
		if duration[3] >= 60 then return p._error('Giá trị giây phải nhỏ hơn 60') end
		if duration[2] >= 60 then return p._error('Giá trị phút phải nhỏ hơn 60 nếu giá trị giờ được chỉ định') end
		if duration[2] < 10 then duration[2] = '0'..duration[2] end -- zero padding
		if duration[3] < 10 then duration[3] = '0'..duration[3] end
		duration = '<span class="duration"><span class="h">' .. duration[1] .. '</span>:<span class="min">' .. duration[2] .. '</span>:<span class="s">' .. duration[3] .. '</span></span>'
	elseif duration[2] then
		if (duration[1] + duration[2]) == 0 then return nil end
		if duration[1] ~= math.ceil(duration[1]) then return p._error('Giá trị giờ và phút phải là số nguyên') end
		if duration[2] >= 60 then return p._error('Giá trị giây phải nhỏ hơn 60') end
		if duration[2] < 10 then duration[2] = '0'..duration[2] end -- zero padding
		duration = '<span class="duration"><span class="min">' .. duration[1] .. '</span>:<span class="s">' .. duration[2] .. '</span></span>'
	else
		duration = ''
	end
	
	if tmp and tmp ~= '' then
		if duration ~= '' then tmp = mw.ustring.gsub(tmp, '%d*:?%d+:%d+%.?%d*', duration, 1) else tmp = tmp .. ' [[Thể loại:Thời lượng không có vi định dạng hAudio]]' end
	else
		if duration ~= '' then tmp = duration end
	end
	return tmp
end

return p
Chúng tôi bán
Bài viết liên quan
Lịch sử đồng hành của các vị thần với quốc gia của mình
Lịch sử đồng hành của các vị thần với quốc gia của mình
Lược qua các thông tin cơ bản của các vị thần với quốc gia của mình
Tây Du Hắc Tích – Nhị Lang Thần và tầm vóc câu chuyện Game Science muốn kể
Tây Du Hắc Tích – Nhị Lang Thần và tầm vóc câu chuyện Game Science muốn kể
Với những ai đã hoàn thành xong trò chơi, hẳn sẽ khá ngạc nhiên về cái kết ẩn được giấu kỹ, theo đó hóa ra người mà chúng ta tưởng là Phản diện lại là một trong những Chính diện ngầm
Love Live! Nijigasaki Gakuen School Idol Doukoukai Vietsub
Love Live! Nijigasaki Gakuen School Idol Doukoukai Vietsub
Các thiếu nữ mơ mộng theo đuổi School Idol. Lần này trường sống khỏe sống tốt nên tha hồ mà tấu hài!
Công thức nước chấm thần thánh
Công thức nước chấm thần thánh
Nước chấm rất quan trọng trong bữa ăn cơm của người Việt Nam. Các bữa cơm hầu như không thể thiếu nó