Modul:Chronik/Work: Unterschied zwischen den Versionen
Aus FürthWiki
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| Zeile 2: | Zeile 2: | ||
local str = require("Modul:String") | local str = require("Modul:String") | ||
local c = require("Modul:Common") | local c = require("Modul:Common") | ||
local lfd = require("Modul:LinkFormDatum") | |||
function p.dateParser(s, year) | function p.dateParser(s, year) | ||
local start_date, end_date = p.splitDateString(s, year) | local start_date, end_date = p.splitDateString(s, year) | ||
start_date, end_date = p.completeDates(start_date, end_date, year) | |||
return start_date, end_date | |||
end | |||
function p.completeDates(start_date, end_date, year) | |||
--[[Jetzt müssen die gesplitteten Datum vervollständigt werden. Kann ja | --[[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 | sein, daß etwas wie 6. - 10. Januar angegeben ist. Und das Jahr, wenn nicht | ||
Version vom 3. September 2025, 14:36 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")
local lfd = require("Modul:LinkFormDatum")
function p.dateParser(s, year)
local start_date, end_date = p.splitDateString(s, year)
start_date, end_date = p.completeDates(start_date, end_date, year)
return start_date, end_date
end
function p.completeDates(start_date, end_date, 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
-- Wenn ein Enddatum gegeben ist
local ed = str.split(end_date, ' ')
if c.len(ed) == 2 then
-- Wenn das Enddatum kein Jahr enthält, füge es aus year hinzu
ed[3] = year
end_date = end_date .. " " .. ed[3]
end
if c.len(sd) == 2 then
-- Wenn das Startdatum kein Jahr enthält, hole es von Enddatum
start_date = start_date .. " " .. ed[3]
elseif c.len(sd) == 1 then
-- Startdatum enthält weder Monat noch Jahr, hole sie von Enddatum
start_date = start_date .. " " .. ed[2] .. " " .. ed[3]
end
else
-- Wenn nur ein Startdatum gegeben ist
if c.len(sd) == 2 then
-- Wenn das Startdatum kein Jahr enthält, hole es aus year
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