Modul:Chronik/Work: Unterschied zwischen den Versionen

Aus FürthWiki
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 4: Zeile 4:


function p.dateParser(s, year)
function p.dateParser(s, year)
dates = str.split(s, "-")
local start_date, end_date = p.splitDateString(s, year)
--[[Jetzt müssen die gesplitteten Datum vervollständigt werden. Kann ja
sein, daß etwas wie 6. - 10. Januar angegeben ist. Und das Jahr, wenn nicht
gegeben, muß auch aus dem year entnommen werden können.]]
local sd = str.split(start_date, ' ')
if end_date then
local ed = str.split(end_date, ' ')
-- Wenn das End-Datum kein Jahr enthält, füge es aus year hinzu
if c.len(ed) == 2 then
ed[3] = year
end_date = end_date .. " " .. ed[3]
end
if c.len(sd) == 2 then
start_date = start_date .. " " .. ed[3]
elseif c.len(sd) == 1 then
start_date = start_date .. " " .. ed[2] .. " " .. ed[3]
end
else
if c.len(sd) == 2 then
sd[3] = year
start_date = start_date .. " " .. sd[3]
end
end
return start_date, end_date
end
 
function p.splitDateString(s)
-- Teilt ein von/bis Datum in Start- und End-Datum auf.
local dates = str.split(s, "-")
-- Wenn splitten mit "-" nur ein Ergebnis bringt, splitte mit "bis"
-- Wenn splitten mit "-" nur ein Ergebnis bringt, splitte mit "bis"
if c.len(dates) == 1 then
if c.len(dates) == 1 then
Zeile 10: Zeile 40:
end
end
-- Alle Leerzeichen links und rechts in den Ergebnissen entfernen
-- Alle Leerzeichen links und rechts in den Ergebnissen entfernen
for i, value in ipairs(dates) do
for i, v in ipairs(dates) do
dates[i] = str.strip(dates[i])
dates[i] = str.strip(dates[i])
end
end
return dates[1], dates[2]
for _, value in ipairs(dates) do
    mw.log(value)  -- oder print(value), wenn du es direkt in der Konsole sehen möchtest
end
return dates[1], dates[2], year
end
 
function p.Testfall(frame)
mw.addWarning("Mach kei gschmarrie, sonst kommst in a hurry!")
mw.site.notice("Mach kei quatsch, sonst klatsch!")
return "That's the text, my dear!"
end
end


return p
return p

Version vom 3. September 2025, 14:10 Uhr

Die Dokumentation für dieses Modul kann unter Modul:Chronik/Work/Doku erstellt werden

local p = {}
local str = require("Modul:String")
local c = require("Modul:Common")

function p.dateParser(s, year)
	local start_date, end_date = p.splitDateString(s, year)
	--[[Jetzt müssen die gesplitteten Datum vervollständigt werden. Kann ja 
	sein, daß etwas wie 6. - 10. Januar angegeben ist. Und das Jahr, wenn nicht
	gegeben, muß auch aus dem year entnommen werden können.]]
	
	local sd = str.split(start_date, ' ')
	if end_date then
		local ed = str.split(end_date, ' ')
		-- Wenn das End-Datum kein Jahr enthält, füge es aus year hinzu
		if c.len(ed) == 2 then
			ed[3] = year
			end_date = end_date .. " " .. ed[3]
		end
		
		if c.len(sd) == 2 then
			start_date = start_date .. " " .. ed[3]
		elseif c.len(sd) == 1 then
			start_date = start_date .. " " .. ed[2] .. " " .. ed[3]
		end
	else
		if c.len(sd) == 2 then
			sd[3] = year
			start_date = start_date .. " " .. sd[3]
		end
	end
	return start_date, end_date
end

function p.splitDateString(s)
	-- Teilt ein von/bis Datum in Start- und End-Datum auf.
	local dates = str.split(s, "-")
	-- Wenn splitten mit "-" nur ein Ergebnis bringt, splitte mit "bis"
	if c.len(dates) == 1 then
		dates = str.split(s, "bis")
	end
	-- Alle Leerzeichen links und rechts in den Ergebnissen entfernen
	for i, v in ipairs(dates) do
		dates[i] = str.strip(dates[i])
	end
	return dates[1], dates[2]
end

return p