Op den Inhalt sprangen

Modul:DateLb

Vu Wikipedia
Dokumentatioun vum Modul:DateLb [liesen] [änneren] [Versioune weisen]

D'Dokumentatioun fir dëst Modul steet hei ënnendrënner an ass vun der Säit Modul:DateLb/doc hei agebonne ginn. Kuckt och: Hëllef:Moduler.

local p = {}

function p.formatDate(frame)
	local num = 0
	local dateToFormat = frame.args[1]
	local result = ""
	local a = {}

	for i in string.gmatch(dateToFormat, "%S+") do
		a[num] = i
		num = num + 1
	end

	---- num == 5 ----
	-- Dag Mount Joer v. Chr. (julianesch)
	if num == 5 and
		string.match(dateToFormat, "^[%d]+%. [%D]+ [%d]+ v%. Chr%. %(julianesch%)$") ~= nil then
			result = "[["..a[0].." "..a[1].."]] [["..a[2].." "..a[3].."]] <sup>[[Julianesche Kalenner|jul.]]</sup>"

	---- num == 4 ----
    elseif num == 4 then
		if -- Dag Mount Joer v.&nbsp;Chr.
			string.match(dateToFormat, "^[%d]+%. [%D]+ [%d]+ v%.&nbsp;Chr%.$") ~= nil then
				result = "[["..a[0].." "..a[1].."]] [["..a[2].." "..a[3].."]]"
		elseif -- Dag Mount Joer (julianesch)
			string.match(dateToFormat, "^[%d]+%. [%D]+ [%d]+ %(julianesch%)$") ~= nil then
				result = "[["..a[0].." "..a[1].."]] [["..a[2].."]] <sup>[[Julianesche Kalenner|jul.]]</sup>"
		elseif -- Mount Joer v.&nbsp;Chr. (julianesch)
			string.match(dateToFormat, "^[%D]+ [%d]+ v%.&nbsp;Chr%. %(julianesch%)$") ~= nil then
				result = "[["..a[0].."]] [["..a[1].." "..a[2].."]] <sup>[[Julianesche Kalenner|jul.]]</sup>"
		elseif -- n. Joerdausend/Joerhonnert v.&nbsp;Chr. (julianesch)
			string.match(dateToFormat, "^[%d]+%. Joer[dh][ao][un][sn]e[nr][dt] v%.&nbsp;Chr%. %(julianesch%)$") ~= nil then
				result = "[["..a[0].." "..a[1].." "..a[2].."]] <sup>[[Julianesche Kalenner|jul.]]</sup>"
		else
			result = dateToFormat.."[[Kategorie:Modul:DateLb-Trackingkategorie]]"
		end
	
	---- num == 3 ----
	elseif num == 3 then
		if -- Dag Mount Joer
			string.match(dateToFormat, "^[%d]+%. [%D]+ [%d]+$") ~= nil then
				result = "[["..a[0].." "..a[1].."]] [["..a[2].."]]"
		elseif -- Mount Joer v.&nbsp;Chr.
			string.match(dateToFormat, "^[%D]+ [%d]+ v%.&nbsp;Chr%.$") ~= nil then
				result = "[["..a[0].."]] [["..a[1].." "..a[2].."]]"
		elseif -- Mount Joer (Julianesch)
			string.match(dateToFormat, "^[%D]+ [%d]+ %(julianesch%)$") ~= nil then
				result = "[["..a[0].."]] [["..a[1].."]] <sup>[[Julianesche Kalenner|jul.]]</sup>"
		elseif --Joer v.&nbsp;Chr. (Julianesch)
			string.match(dateToFormat, "^[%d]+ v%.&nbsp;Chr%. %(julianesch%)$") ~= nil then
				result = "[["..a[0].." "..a[1].."]] <sup>[[Julianesche Kalenner|jul.]]</sup>"
		elseif -- Joerzéngt v.&nbsp;Chr. (Julianesch)
			string.match(dateToFormat, "^[%d]+er v%.&nbsp;Chr%. %(julianesch%)$") ~= nil then
				result = a[0].." "..a[1].." <sup>[[Julianesche Kalenner|jul.]]</sup>"
		elseif -- n. Joerdausend/Joerhonnert v.&nbsp;Chr.
			string.match(dateToFormat, "^[%d]+%. Joer[dh][ao][un][sn]e[nr][dt] v%.&nbsp;Chr%.$") ~= nil then
				result = "[["..a[0].." "..a[1].." "..a[2].."]]"
		elseif -- n. Joerdausend/Joerhonnert (Julianesch)
			string.match(dateToFormat, "^[%d]+%. Joer[dh][ao][un][sn]e[nr][dt] %(julianesch%)$") ~= nil then
				result = "[["..a[0].." "..a[1].."]] <sup>[[Julianesche Kalenner|jul.]]</sup>"
		else
			result = dateToFormat.."[[Kategorie:Modul:DateLb-Trackingkategorie]]"
		end
	
	---- num == 2 ----
	elseif num == 2 then
		if 	-- Mount Joer
			string.match(dateToFormat, "^[%D]+ [%d]+$") ~= nil then
				result = "[["..a[0].."]] [["..a[1].."]]"
		elseif -- Joer v.&nbsp;Chr.
			string.match(dateToFormat, "^[%d]+ v%.&nbsp;Chr%.$") ~= nil then
				result = "[["..a[0].." "..a[1].."]]"
		elseif -- Joer (Julianesch)
			string.match(dateToFormat, "^[%d]+ %(julianesch%)$") ~= nil then
				result = "[["..a[0].."]] <sup>[[Julianesche Kalenner|jul.]]</sup>"
		elseif -- Joerzéngt v. Chr.
			string.match(dateToFormat, "^[%d]+er v%.&nbsp;Chr%.$") ~= nil then
				result = dateToFormat
		elseif -- Joerzéngt (Julianesch)
			string.match(dateToFormat, "^[%d]+er %(julianesch%)$") ~= nil then
				result = a[0].." <sup>[[Julianesche Kalenner|jul.]]</sup>"
		elseif -- n. Joerdausend/Joerhonnert
			string.match(dateToFormat, "^[%d]+%. Joer[dh][ao][un][sn]e[nr][dt]$") ~= nil then
				result = "[["..a[0].." "..a[1].."]]"
		else
			result = dateToFormat.."[[Kategorie:Modul:DateLb-Trackingkategorie]]"
		end
	
	---- num == 1 -----
	elseif num == 1 then
		if -- Joer
			string.match(dateToFormat, "^[%d]+$") ~= nil then
				result = "[["..dateToFormat.."]]"
		elseif -- Joerzéngt
			string.match(dateToFormat, "^[%d]+er$") ~= nil then
				result = dateToFormat
		elseif -- onbekannt
			string.match(dateToFormat, "^onbekannt$") ~= nil then
				result = dateToFormat
		else
			result = dateToFormat.."[[Kategorie:Modul:DateLb-Trackingkategorie]]"
		end
	
	---- every other case ----
	else
		result = dateToFormat
	end

	return result
end

function p.formatDateNotLinked(dateToFormat)
	local num = 0
	local result = ""
	local a = {}

	for i in string.gmatch(dateToFormat.args[1], "%S+") do
		a[num] = i
		num = num + 1
	end

	if num == 3 then
		result = a[2]
	end

	return result
end

function p.formatDates(dateToFormat)
	local result = ""

	for k, v in pairs(dateToFormat) do
        if type(k) == "string" then
            result = result .. "," .. fun.formatDateNotLinked(v)
        end
	end
	return result
end

return p