
<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://www.freewiki.eu/de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=109.192.43.5</id>
	<title>FreeWiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://www.freewiki.eu/de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=109.192.43.5"/>
	<link rel="alternate" type="text/html" href="https://www.freewiki.eu/de/index.php?title=Spezial:Beitr%C3%A4ge/109.192.43.5"/>
	<updated>2026-05-05T06:42:37Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.31.16</generator>
	<entry>
		<id>https://www.freewiki.eu/de/index.php?title=Modul:Vorlage:FormatDate&amp;diff=4011</id>
		<title>Modul:Vorlage:FormatDate</title>
		<link rel="alternate" type="text/html" href="https://www.freewiki.eu/de/index.php?title=Modul:Vorlage:FormatDate&amp;diff=4011"/>
		<updated>2013-06-14T20:09:05Z</updated>

		<summary type="html">&lt;p&gt;109.192.43.5: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {} &lt;br /&gt;
        -- Trennen der Parameter&lt;br /&gt;
        local function Split(str)&lt;br /&gt;
            local Datum = {}&lt;br /&gt;
            local Teil=&amp;quot;&amp;quot;&lt;br /&gt;
            local pos = 0&lt;br /&gt;
            Datum.y = 0&lt;br /&gt;
            Datum.m = 0&lt;br /&gt;
            Datum.d = 0&lt;br /&gt;
            pos = mw.ustring.find(str,'-',1,true);&lt;br /&gt;
            if pos == 1 then -- Minuszeichen am Anfang - nochmal suchen&lt;br /&gt;
                pos = mw.ustring.find(str,'-',2,true);&lt;br /&gt;
            end&lt;br /&gt;
            if not pos then&lt;br /&gt;
                Datum.y = tonumber(str) or 'x'&lt;br /&gt;
                return false, Datum  -- Kein Wert erkennbar&lt;br /&gt;
            end&lt;br /&gt;
            Teil  = mw.ustring.sub(str,1,pos-1)&lt;br /&gt;
            Datum.y = tonumber(Teil) or 'x'&lt;br /&gt;
            str = mw.ustring.sub(str,pos+1,   -1)jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj&lt;br /&gt;
            &lt;br /&gt;
            pos = mw.ustring.find(str,'-',1,true);&lt;br /&gt;
            if not pos or pos == 0 then&lt;br /&gt;
                return true, Datum   -- Nur Jahr&lt;br /&gt;
            end&lt;br /&gt;
            Teil  = mw.ustring.sub(str,1,pos-1)&lt;br /&gt;
            Datum.m = tonumber(Teil) or 0&lt;br /&gt;
            Teil  = mw.ustring.sub(str,pos+1,   -1)&lt;br /&gt;
            if #Teil == 0 then&lt;br /&gt;
                return true, Datum   -- Nur Jahr und Monat&lt;br /&gt;
            end&lt;br /&gt;
            if Datum.m == 0 then&lt;br /&gt;
                Datum.d = 0&lt;br /&gt;
            else&lt;br /&gt;
                Datum.d = tonumber(Teil) or 0&lt;br /&gt;
            end&lt;br /&gt;
            return true, Datum &lt;br /&gt;
        end&lt;br /&gt;
        --&lt;br /&gt;
&lt;br /&gt;
        local function CheckDate(Date)&lt;br /&gt;
            if ( Date.m == 4 or Date.m == 6  or Date.m == 9  or Date.m == 11) and Date.d &amp;gt; 30 then&lt;br /&gt;
                return false;&lt;br /&gt;
            end&lt;br /&gt;
            if  Date.m == 2 then -- Die greg. Sonderregeln werden ignoriert.&lt;br /&gt;
                if Date.y % 4 ~= 0 and Date.d &amp;gt; 28 then return false; end&lt;br /&gt;
                if Date.y % 4 == 0 and Date.d &amp;gt; 29 then return false; end&lt;br /&gt;
            end&lt;br /&gt;
            -- Hier nur noch 31-Tage-Monate übrig.&lt;br /&gt;
            if Date.d &amp;gt; 31  then return false; end&lt;br /&gt;
            return true;&lt;br /&gt;
        end&lt;br /&gt;
        --&lt;br /&gt;
&lt;br /&gt;
        local function Run(Args)&lt;br /&gt;
            local T_F  = {&amp;quot;Januar&amp;quot;,&amp;quot;Februar&amp;quot;, &amp;quot;März&amp;quot;, &amp;quot;April&amp;quot;, &amp;quot;Mai&amp;quot;,&amp;quot;Juni&amp;quot;, &amp;quot;Juli&amp;quot;, &amp;quot;August&amp;quot;,&amp;quot;September&amp;quot;,&amp;quot;Oktober&amp;quot;,&amp;quot;November&amp;quot;,&amp;quot;Dezember&amp;quot;,&amp;quot;Jänner&amp;quot;}&lt;br /&gt;
            local T_M  = {&amp;quot;Jan.&amp;quot;,&amp;quot;Feb.&amp;quot;,  &amp;quot;Mrz&amp;quot;, &amp;quot;Apr.&amp;quot;, &amp;quot;Mai&amp;quot;,&amp;quot;Jun.&amp;quot;, &amp;quot;Jul.&amp;quot;, &amp;quot;Aug.&amp;quot;,&amp;quot;Sep.&amp;quot;,&amp;quot;Okt.&amp;quot;,&amp;quot;Nov.&amp;quot;,&amp;quot;Dez.&amp;quot;,&amp;quot;Jän.&amp;quot;}&lt;br /&gt;
            local T_S  = {&amp;quot;Jan.&amp;quot;,&amp;quot;Feb.&amp;quot;, &amp;quot;März&amp;quot;, &amp;quot;Apr.&amp;quot;, &amp;quot;Mai&amp;quot;,&amp;quot;Juni&amp;quot;, &amp;quot;Juli&amp;quot;, &amp;quot;Aug.&amp;quot;,&amp;quot;Sep.&amp;quot;,&amp;quot;Okt.&amp;quot;,&amp;quot;Nov.&amp;quot;,&amp;quot;Dez.&amp;quot;,&amp;quot;Jän.&amp;quot;}&lt;br /&gt;
            local Text = &amp;quot;&amp;quot;;&lt;br /&gt;
            local   AT = false;&lt;br /&gt;
            local NBSP = false;&lt;br /&gt;
            local LINK = false;&lt;br /&gt;
            local VCHR = &amp;quot;&amp;quot;;&lt;br /&gt;
            local STIL = 'F';&lt;br /&gt;
            local IsOk = true&lt;br /&gt;
            local Tbl = {}&lt;br /&gt;
            local SortIt = false;&lt;br /&gt;
            local Numstr = &amp;quot;&amp;quot;;&lt;br /&gt;
            local SortTag= &amp;quot;&amp;quot;;&lt;br /&gt;
            if mw.ustring.lower(Args[2] or &amp;quot;&amp;quot;) == &amp;quot;nbsp&amp;quot;  or mw.ustring.lower(Args[3] or &amp;quot;&amp;quot;) == &amp;quot;nbsp&amp;quot;  or mw.ustring.lower(Args[4] or &amp;quot;&amp;quot;) == &amp;quot;nbsp&amp;quot; then NBSP = true; end&lt;br /&gt;
            if mw.ustring.lower(Args[2] or &amp;quot;&amp;quot;) == &amp;quot;link&amp;quot;  or mw.ustring.lower(Args[3] or &amp;quot;&amp;quot;) == &amp;quot;link&amp;quot;  or mw.ustring.lower(Args[4] or &amp;quot;&amp;quot;) == &amp;quot;link&amp;quot; then LINK = true; end&lt;br /&gt;
            if mw.ustring.upper(Args[2] or &amp;quot;&amp;quot;) == &amp;quot;M&amp;quot;     or mw.ustring.upper(Args[3] or &amp;quot;&amp;quot;) == &amp;quot;M&amp;quot;     or mw.ustring.upper(Args[4] or &amp;quot;&amp;quot;) == &amp;quot;M&amp;quot;    then STIL = 'M'; end&lt;br /&gt;
            if mw.ustring.upper(Args[2] or &amp;quot;&amp;quot;) == &amp;quot;S&amp;quot;     or mw.ustring.upper(Args[3] or &amp;quot;&amp;quot;) == &amp;quot;S&amp;quot;     or mw.ustring.upper(Args[4] or &amp;quot;&amp;quot;) == &amp;quot;S&amp;quot;    then STIL = 'S'; end&lt;br /&gt;
            if mw.ustring.lower(Args['AT'] or &amp;quot;&amp;quot;) == &amp;quot;ja&amp;quot; then AT = true; end&lt;br /&gt;
            if mw.ustring.lower(Args['Sort'] or &amp;quot;&amp;quot;) ~= &amp;quot;&amp;quot; then SortIt = true; end&lt;br /&gt;
&lt;br /&gt;
            IsOk, Tbl = Split(Args[1])&lt;br /&gt;
&lt;br /&gt;
            if Tbl.y == 'x' then&lt;br /&gt;
                Text = '&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;[[Vorlage:FormatDate]]: Ungültiger Wert für Jahr!&amp;lt;/span&amp;gt;'&lt;br /&gt;
                return Text&lt;br /&gt;
            end&lt;br /&gt;
            if Tbl.m &amp;gt; 12 or Tbl.m &amp;lt; 0 then&lt;br /&gt;
                Text = '&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;[[Vorlage:FormatDate]]: Ungültiger Wert für Monat!&amp;lt;/span&amp;gt;'&lt;br /&gt;
                return Text&lt;br /&gt;
            end&lt;br /&gt;
            if Tbl.y &amp;lt;= 0 then&lt;br /&gt;
                Tbl.y = 1 - Tbl.y&lt;br /&gt;
                VCHR = &amp;quot; v. Chr.&amp;quot;;&lt;br /&gt;
            end&lt;br /&gt;
            if Tbl.d &amp;gt; 0 then&lt;br /&gt;
                if CheckDate(Tbl) then&lt;br /&gt;
                    Text = tostring(Tbl.d) .. '.&amp;amp;nbsp;'&lt;br /&gt;
                else&lt;br /&gt;
                    Text = '&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;[[Vorlage:FormatDate]]: Ungültiges Datum!'.. table.concat(Tbl,'.')..'&amp;lt;/span&amp;gt;'&lt;br /&gt;
                    return Text&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
            if Tbl.m &amp;gt; 0 then&lt;br /&gt;
                if LINK then&lt;br /&gt;
                    if Tbl.d == 0 then&lt;br /&gt;
                        Linkziel =T_F[Tbl.m]&lt;br /&gt;
                    else&lt;br /&gt;
                        Linkziel = tostring(Tbl.d) .. &amp;quot;. &amp;quot; .. T_F[Tbl.m]&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
                if AT and Tbl.m == 1 then&lt;br /&gt;
                    Tbl.m = 13&lt;br /&gt;
                end&lt;br /&gt;
                if STIL == 'M' then&lt;br /&gt;
                    Text = Text .. T_M[Tbl.m]&lt;br /&gt;
                elseif STIL == 'S' then&lt;br /&gt;
                    Text = Text .. T_S[Tbl.m]&lt;br /&gt;
                else&lt;br /&gt;
                    Text = Text .. T_F[Tbl.m]&lt;br /&gt;
                end&lt;br /&gt;
                if LINK then&lt;br /&gt;
                    Text = &amp;quot;[[&amp;quot; .. Linkziel .. &amp;quot;|&amp;quot; .. Text .. &amp;quot;]]&amp;quot;&lt;br /&gt;
                end&lt;br /&gt;
                if NBSP then&lt;br /&gt;
                    Text = Text .. &amp;quot;&amp;amp;nbsp;&amp;quot;&lt;br /&gt;
                else&lt;br /&gt;
                    Text = Text .. &amp;quot; &amp;quot;&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
            if LINK then&lt;br /&gt;
                Text = Text .. &amp;quot;[[&amp;quot; .. tostring(Tbl.y) .. VCHR .. &amp;quot;]]&amp;quot;&lt;br /&gt;
            else&lt;br /&gt;
                Text = Text .. tostring(Tbl.y) .. VCHR&lt;br /&gt;
            end&lt;br /&gt;
            if SortIt then&lt;br /&gt;
                if Tbl.m == 13 then Tbl.m = 1 end&lt;br /&gt;
                if tonumber(Tbl.y) and  tonumber(Tbl.m) and  tonumber(Tbl.d) then&lt;br /&gt;
                    if VCHR ~= &amp;quot;&amp;quot; then &lt;br /&gt;
                        Tbl.y = 1 - Tbl.y&lt;br /&gt;
                    end&lt;br /&gt;
                    Numstr = string.format('%d%2.2d%2.2d',5000+Tbl.y,Tbl.m,Tbl.d)&lt;br /&gt;
                    SortTag='&amp;lt;span style=&amp;quot;display:none&amp;quot; class=&amp;quot;sortkey&amp;quot;&amp;gt;' .. Numstr .. '&amp;lt;/span&amp;gt;'&lt;br /&gt;
                    Text = SortTag .. Text&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
&lt;br /&gt;
            return Text&lt;br /&gt;
        end&lt;br /&gt;
        --&lt;br /&gt;
&lt;br /&gt;
        function p.Execute(frame)&lt;br /&gt;
            local FR = frame:getParent()&lt;br /&gt;
            return  Run(FR.args)&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        function p.Sort(frame)&lt;br /&gt;
            local FR = frame:getParent()&lt;br /&gt;
            FR.args.Sort='1'&lt;br /&gt;
            return  Run(FR.args)&lt;br /&gt;
        end&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>109.192.43.5</name></author>
		
	</entry>
</feed>