<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="hu">
	<id>https://www.gyimesilaszlo.hu/politika/wiki/index.php?action=history&amp;feed=atom&amp;title=Modul%3AD%C3%A1tumsz%C5%B1r%C3%A9s</id>
	<title>Modul:Dátumszűrés - Laptörténet</title>
	<link rel="self" type="application/atom+xml" href="https://www.gyimesilaszlo.hu/politika/wiki/index.php?action=history&amp;feed=atom&amp;title=Modul%3AD%C3%A1tumsz%C5%B1r%C3%A9s"/>
	<link rel="alternate" type="text/html" href="https://www.gyimesilaszlo.hu/politika/wiki/index.php?title=Modul:D%C3%A1tumsz%C5%B1r%C3%A9s&amp;action=history"/>
	<updated>2026-04-08T11:45:57Z</updated>
	<subtitle>Az oldal laptörténete a wikiben</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://www.gyimesilaszlo.hu/politika/wiki/index.php?title=Modul:D%C3%A1tumsz%C5%B1r%C3%A9s&amp;diff=12&amp;oldid=prev</id>
		<title>Laci: Új oldal, tartalma: „-- A MODUL FÜGGVÉNYEIT ÉS ADATAIT CSAK require(&#039;Modul:Dátumszűrés&#039;) MÓDON TUDJUK ELÉRNI. -- A CitWeb és családja számára készült el.  require(&#039;Modul:No gl…”</title>
		<link rel="alternate" type="text/html" href="https://www.gyimesilaszlo.hu/politika/wiki/index.php?title=Modul:D%C3%A1tumsz%C5%B1r%C3%A9s&amp;diff=12&amp;oldid=prev"/>
		<updated>2018-10-27T09:08:22Z</updated>

		<summary type="html">&lt;p&gt;Új oldal, tartalma: „-- A MODUL FÜGGVÉNYEIT ÉS ADATAIT CSAK require(&amp;#039;Modul:Dátumszűrés&amp;#039;) MÓDON TUDJUK ELÉRNI. -- A CitWeb és családja számára készült el.  require(&amp;#039;Modul:No gl…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Új lap&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- A MODUL FÜGGVÉNYEIT ÉS ADATAIT CSAK require(&amp;#039;Modul:Dátumszűrés&amp;#039;) MÓDON TUDJUK ELÉRNI.&lt;br /&gt;
-- A CitWeb és családja számára készült el.&lt;br /&gt;
&lt;br /&gt;
require(&amp;#039;Modul:No globals&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
-- a magyar dátumhoz kell&lt;br /&gt;
local honapok = {&amp;#039;jan.&amp;#039;, &amp;#039;feb.&amp;#039;, &amp;#039;márc.&amp;#039;, &amp;#039;ápr.&amp;#039;, &amp;#039;máj.&amp;#039;, &amp;#039;jún.&amp;#039;, &amp;#039;júl.&amp;#039;, &amp;#039;aug.&amp;#039;, &amp;#039;szept.&amp;#039;, &amp;#039;okt.&amp;#039;, &amp;#039;nov.&amp;#039;, &amp;#039;dec.&amp;#039;}&lt;br /&gt;
&lt;br /&gt;
-- ellenőrizzük az egyes hónapok hosszát&lt;br /&gt;
local honaphossz = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}&lt;br /&gt;
&lt;br /&gt;
-- pop a nyomkövetés céljait szolgálja&lt;br /&gt;
local ou = &amp;#039;&amp;#039;&lt;br /&gt;
local function pop(...) -- idézőjeles rész és bővítmények az ou számára&lt;br /&gt;
--[[ memóriatúllépést okoz, csak teszteléshez&lt;br /&gt;
	local list = {...}&lt;br /&gt;
	for _, var in pairs(list) do&lt;br /&gt;
		ou = ou .. tostring(var) .. &amp;#039;\n &amp;#039;&lt;br /&gt;
		mw.log(ou)&lt;br /&gt;
	end&lt;br /&gt;
]]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- a magyar helyesírás szerinti rövidített hónapnevek a honapnevesdate() kimenetének&lt;br /&gt;
-- előállításához&lt;br /&gt;
&lt;br /&gt;
-- az ISO 8604 szabvány szerinti dátumban a hónap helyére lépő stringet szolgáltatja&lt;br /&gt;
local honapsorszamekezetnelkul = {&lt;br /&gt;
	[&amp;#039;jan&amp;#039;] = &amp;#039;01&amp;#039;, -- january, Januar&lt;br /&gt;
	[&amp;#039;feb&amp;#039;] = &amp;#039;02&amp;#039;, -- february, Februar, février&lt;br /&gt;
	[&amp;#039;mar&amp;#039;] = &amp;#039;03&amp;#039;, -- mars, März, mars&lt;br /&gt;
	[&amp;#039;apr&amp;#039;] = &amp;#039;04&amp;#039;, -- april, avril első betű a, második v APRL AVRL&lt;br /&gt;
	[&amp;#039;maj&amp;#039;] = &amp;#039;05&amp;#039;, -- may mai mai az első betű m, a harmadik nem r MAY&lt;br /&gt;
	[&amp;#039;jun&amp;#039;] = &amp;#039;06&amp;#039;, -- june, juin az első kettő ju de a harmadik i JUN&lt;br /&gt;
	[&amp;#039;jul&amp;#039;] = &amp;#039;07&amp;#039;, -- july, juli, juillet viszont itt is i, VEGYÜK KI AZ I-T A NÉVBŐL: JUL&lt;br /&gt;
	[&amp;#039;aug&amp;#039;] = &amp;#039;08&amp;#039;, -- august, aout első betű a, második o&lt;br /&gt;
	[&amp;#039;sze&amp;#039;] = &amp;#039;09&amp;#039;, -- sept&lt;br /&gt;
	[&amp;#039;okt&amp;#039;] = &amp;#039;10&amp;#039;,&lt;br /&gt;
	[&amp;#039;nov&amp;#039;] = &amp;#039;11&amp;#039;,&lt;br /&gt;
	[&amp;#039;dec&amp;#039;] = &amp;#039;12&amp;#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- a római számmal megadott hónap decimális megfelelője&lt;br /&gt;
local decimal = {&lt;br /&gt;
	[&amp;#039;I&amp;#039;] = 1,&lt;br /&gt;
	[&amp;#039;II&amp;#039;] = 2,&lt;br /&gt;
	[&amp;#039;III&amp;#039;] = 3,&lt;br /&gt;
	[&amp;#039;IV&amp;#039;] = 4,&lt;br /&gt;
	[&amp;#039;V&amp;#039;] = 5,&lt;br /&gt;
	[&amp;#039;VI&amp;#039;] = 6,&lt;br /&gt;
	[&amp;#039;VII&amp;#039;] = 7,&lt;br /&gt;
	[&amp;#039;VIII&amp;#039;] = 8,&lt;br /&gt;
	[&amp;#039;IX&amp;#039;] = 9,&lt;br /&gt;
	[&amp;#039;X&amp;#039;] = 10,&lt;br /&gt;
	[&amp;#039;XI&amp;#039;] = 11,&lt;br /&gt;
	[&amp;#039;XII&amp;#039;] = 12&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local hibavan = false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- kell a dátum ellenőrzéséhez&lt;br /&gt;
-- a numerikus dátumokat kezeli le és ISO 8604 szabvány szerinti dátumot csinál a bemeneti esetleg helytelenül megadott dátumból&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
DÁTUMSZŰRŐ:&lt;br /&gt;
Kiszűri a bemenetén kapott dátumokból&lt;br /&gt;
a) a csupa számból álló ISO 8604 dátumokat&lt;br /&gt;
b) a római számmal megadott magyar dátumokat&lt;br /&gt;
c) a magyar vagy idegen hónapneveket tartalmazó dátumokat&lt;br /&gt;
és ezekből mind helyesen formázott ISO 8604 dátumokat csinál&lt;br /&gt;
--]]&lt;br /&gt;
&lt;br /&gt;
local function error(about) -- hibajelzést szolgál&lt;br /&gt;
	-- Enclose errorMsg with &amp;lt;span&amp;gt;&lt;br /&gt;
	-- Precondition:&lt;br /&gt;
	--     about -- string&lt;br /&gt;
	hibavan = true&lt;br /&gt;
	local r = about&lt;br /&gt;
	if type(about) == &amp;#039;string&amp;#039; then&lt;br /&gt;
		if #about == 0 then&lt;br /&gt;
			r = &amp;#039;Lua-hiba&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
	r = tostring(about)&lt;br /&gt;
	end&lt;br /&gt;
	return &amp;#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;&amp;#039; .. r .. &amp;#039;&amp;lt;/span&amp;gt;, &amp;#039;&lt;br /&gt;
end -- error()&lt;br /&gt;
&lt;br /&gt;
local function isRoman(v)&lt;br /&gt;
	if type(v) ~= &amp;#039;string&amp;#039; then&lt;br /&gt;
		-- A római számok stringek&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
	if v:find(&amp;#039;[^IVXLCDM]&amp;#039;) then&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[ month_to_hu(m)&lt;br /&gt;
segéd-funkció, mely az idegen hónapneveket helyettesíti azékezet nélküli, három karakteres rövidített&lt;br /&gt;
magyar hónapnevekre (a rövidítést nem jelzi ponntal)&lt;br /&gt;
Ennek alapján beküzdi a kétjegyű hónap-sorszámot az ISO 8604 szabványnak megfelelő alakban&lt;br /&gt;
--]]&lt;br /&gt;
local function month_to_hu(m)&lt;br /&gt;
	--[[&lt;br /&gt;
		Spanyol: enero febrero marzo abril mayo junio julio ago septiembre v. setiembre octubre noviembre diziembre&lt;br /&gt;
		Portugál: janeiro fevereiro marco abril maio junho julho agosto setembro outubro novembro dezembro&lt;br /&gt;
		Olasz: gennaio febbraio marzo aprile maggio giugno luglio agosto settembre ottobre novemre dicembre&lt;br /&gt;
	--]]&lt;br /&gt;
	local alfa, eb, ub, e2b&lt;br /&gt;
	if not m then&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	m = string.gsub(m, &amp;#039; &amp;#039;, &amp;#039;&amp;#039;) -- cseréljük fel a szóközöket üressel&lt;br /&gt;
	m = string.gsub(m, &amp;#039;ä&amp;#039;, &amp;#039;a&amp;#039;) -- März, mars problem ôû&lt;br /&gt;
	m = string.gsub(m, &amp;#039;û&amp;#039;, &amp;#039;u&amp;#039;)&lt;br /&gt;
	m = string.lower(m) -- minden kisbetűs&lt;br /&gt;
	alfa = string.match(m, &amp;#039;[a-z%-]+&amp;#039;) -- kötőjel problémás&lt;br /&gt;
	if alfa then -- vannak egyáltalán betűk&lt;br /&gt;
		pop(&amp;#039;1- alfa=&amp;#039;, alfa)&lt;br /&gt;
		m = string.sub(m, 1, 3) --három betünk van&lt;br /&gt;
		eb = string.sub(m, 1, 1)&lt;br /&gt;
		if eb == &amp;#039;m&amp;#039; then&lt;br /&gt;
			ub = string.sub(m, -1, -1)&lt;br /&gt;
			if     ub == &amp;#039;i&amp;#039; then m = &amp;#039;maj&amp;#039;&lt;br /&gt;
			elseif ub == &amp;#039;r&amp;#039; then m = &amp;#039;mar&amp;#039;&lt;br /&gt;
			elseif ub == &amp;#039;y&amp;#039; then m = &amp;#039;maj&amp;#039;&lt;br /&gt;
			elseif ub == &amp;#039;g&amp;#039; then m = &amp;#039;maj&amp;#039; --maggio&lt;br /&gt;
			end&lt;br /&gt;
		elseif eb == &amp;#039;e&amp;#039; then&lt;br /&gt;
			m = &amp;#039;jan&amp;#039; --spanyol&lt;br /&gt;
		elseif eb == &amp;#039;g&amp;#039; then&lt;br /&gt;
			e2b = string.sub(m, 1, 2)&lt;br /&gt;
			if e2b == &amp;#039;ge&amp;#039; then&lt;br /&gt;
				m = &amp;#039;jan&amp;#039;&lt;br /&gt;
			elseif e2b == &amp;#039;gi&amp;#039; then&lt;br /&gt;
				m = &amp;#039;jun&amp;#039; --- olasz&lt;br /&gt;
			end&lt;br /&gt;
		elseif eb == &amp;#039;j&amp;#039; then&lt;br /&gt;
			if string.sub(m, 2, 2) == &amp;#039;a&amp;#039; then&lt;br /&gt;
				m = &amp;#039;jan&amp;#039;&lt;br /&gt;
			elseif string.sub(m, 3, 3) == &amp;#039;n&amp;#039; then&lt;br /&gt;
				m = &amp;#039;jun&amp;#039;&lt;br /&gt;
			elseif string.sub(m, 3, 3) == &amp;#039;i&amp;#039; then&lt;br /&gt;
				m = &amp;#039;jul&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
		elseif eb == &amp;#039;a&amp;#039; then&lt;br /&gt;
			if m:find(&amp;#039;^a[pvb]&amp;#039;) then&lt;br /&gt;
				m = &amp;#039;apr&amp;#039;&lt;br /&gt;
			elseif m:find(&amp;#039;^a[ugo]&amp;#039;) then&lt;br /&gt;
				m = &amp;#039;aug&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
		elseif eb == &amp;#039;f&amp;#039; then m = &amp;#039;feb&amp;#039;&lt;br /&gt;
		elseif eb == &amp;#039;l&amp;#039; then m = &amp;#039;jul&amp;#039; --olasz&lt;br /&gt;
		elseif eb == &amp;#039;s&amp;#039; then m = &amp;#039;sze&amp;#039;&lt;br /&gt;
		elseif eb == &amp;#039;o&amp;#039; then m = &amp;#039;okt&amp;#039;&lt;br /&gt;
		elseif eb == &amp;#039;n&amp;#039; then m = &amp;#039;nov&amp;#039;&lt;br /&gt;
		elseif eb == &amp;#039;d&amp;#039; then m = &amp;#039;dec&amp;#039;&lt;br /&gt;
		else&lt;br /&gt;
			return false&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
	return	m&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function szokoev(ev)&lt;br /&gt;
	if ev == nil then&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
	local e = tonumber(ev)&lt;br /&gt;
	if e then -- is numeric?&lt;br /&gt;
		if e % 400 == 0 then return true end&lt;br /&gt;
		if e % 100 == 0 then return false end&lt;br /&gt;
		if e % 4 == 0 then return true end&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[ en_to_hu(de)&lt;br /&gt;
	Angol vagy amerikai angol dátumokból, illetve német, francia, olasz, spanyol&lt;br /&gt;
	 és portugál dátumokból csinál ISO 8604 szabvány szerinti dátumot. Esetleg&lt;br /&gt;
	 bővíthető ez a lista, ha nem vezet kollízióra az idegen neveket értelmező&lt;br /&gt;
	 en_to_hu funkcióban. Hibás dátum esetén false értékkel tér vissza.&lt;br /&gt;
--]]&lt;br /&gt;
local function en_to_hu(de)&lt;br /&gt;
	pop(&amp;#039;en_to_hu indul&amp;#039;)&lt;br /&gt;
	--Az angol dátumokat jó lenne felismernie: &amp;quot;Dec. 10, 2013&amp;quot;. string.lower(s)&lt;br /&gt;
	local ev, ho, nap, maradek&lt;br /&gt;
	if type(de) ~= &amp;#039;string&amp;#039; then&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
	de = string.gsub(de, &amp;#039; &amp;#039;, &amp;#039;&amp;#039;) -- cseréljük fel a szóközöket üressel&lt;br /&gt;
	de = string.gsub(de, &amp;#039;[%.%-]&amp;#039;, &amp;#039;/&amp;#039;)-- cseréljük fel a pontot és kötőjelet perjellel dec/10/2013&lt;br /&gt;
	--éôûäde = string.gsub(de, &amp;#039;é&amp;#039;, &amp;#039;e&amp;#039;)--éôûäF&lt;br /&gt;
	de = string.lower(de) -- minden kisbetűs&lt;br /&gt;
&lt;br /&gt;
	ev = string.match(de, &amp;#039;%d%d%d%d?&amp;#039;)-- keress a dátumban az évet 2013&lt;br /&gt;
	if ev then&lt;br /&gt;
		maradek = string.gsub(de, ev, &amp;#039;&amp;#039;)&lt;br /&gt;
	else&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
	if maradek then&lt;br /&gt;
		pop(&amp;#039;en maradek?&amp;#039;, maradek)&lt;br /&gt;
		-- számmal indul mert little endian&lt;br /&gt;
		maradek = string.gsub(maradek, &amp;#039;/&amp;#039;, &amp;#039;&amp;#039;) -- már nincsenek perjelek dec10, vagy pl dec&lt;br /&gt;
		local i, j&lt;br /&gt;
		i, j = string.match(maradek, &amp;#039;()%d%d?()&amp;#039;)&lt;br /&gt;
		pop(&amp;#039;nap indexei a maradékban=&amp;#039;, i, j)&lt;br /&gt;
		if j then&lt;br /&gt;
			nap = string.sub(maradek, i, j-1)&lt;br /&gt;
		end&lt;br /&gt;
		pop(&amp;#039;nap ?= &amp;#039;, nap)&lt;br /&gt;
&lt;br /&gt;
		if nap then&lt;br /&gt;
			ho = string.gsub(maradek, nap, &amp;#039;&amp;#039;)&lt;br /&gt;
		else&lt;br /&gt;
			ho = maradek&lt;br /&gt;
		end						-- azaz dec10 esetén marad dec, dec esetén pedig ő a hónap&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	de = ev&lt;br /&gt;
	ho = honapsorszamekezetnelkul[month_to_hu(ho)]&lt;br /&gt;
	if ho then&lt;br /&gt;
		de = de .. &amp;#039;-&amp;#039; .. ho&lt;br /&gt;
	end&lt;br /&gt;
	if nap then&lt;br /&gt;
		de = de .. &amp;#039;-&amp;#039; .. nap&lt;br /&gt;
	end -- összeraktuk a dátumot&lt;br /&gt;
	pop(&amp;#039;USA&amp;amp;en átalakult?&amp;#039;, de)&lt;br /&gt;
	local honum = tonumber(ho)&lt;br /&gt;
	pop(&amp;#039;honum&amp;#039;, honum)&lt;br /&gt;
	if honum == nil or 1 &amp;gt; honum or honum &amp;gt; 12 then&lt;br /&gt;
		return false -- hónap sorszáma hibás&lt;br /&gt;
	end&lt;br /&gt;
	pop(&amp;#039;nap=&amp;#039;, nap)&lt;br /&gt;
	pop(&amp;#039;nap típusa: &amp;#039;, type(nap))&lt;br /&gt;
	if nap then&lt;br /&gt;
		local napnum = tonumber(nap)&lt;br /&gt;
		pop(&amp;#039;napnum&amp;#039;, napnum)&lt;br /&gt;
		if napnum ~= nil and 1 &amp;lt;= napnum and napnum &amp;lt;= 31 then&lt;br /&gt;
			pop(&amp;#039;napnum jó?g&amp;#039;, napnum)&lt;br /&gt;
			if szokoev(ev) then&lt;br /&gt;
				honaphossz[2] = 29&lt;br /&gt;
			else&lt;br /&gt;
				honaphossz[2] = 28&lt;br /&gt;
			end&lt;br /&gt;
			if honaphossz[honum] &amp;lt; napnum then&lt;br /&gt;
				return false&lt;br /&gt;
			end -- nap sorszáma hibás&lt;br /&gt;
		else&lt;br /&gt;
			return false&lt;br /&gt;
		end -- nap sorszáma hibás&lt;br /&gt;
	end&lt;br /&gt;
	return de&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function ekezet_le(s)&lt;br /&gt;
	s = string.gsub(s, &amp;#039;á&amp;#039;, &amp;#039;a&amp;#039;)&lt;br /&gt;
	s = string.gsub(s, &amp;#039;é&amp;#039;, &amp;#039;e&amp;#039;)&lt;br /&gt;
	s = string.gsub(s, &amp;#039;í&amp;#039;, &amp;#039;i&amp;#039;)&lt;br /&gt;
	s = string.gsub(s, &amp;#039;ó&amp;#039;, &amp;#039;o&amp;#039;)&lt;br /&gt;
	s = string.gsub(s, &amp;#039;ő&amp;#039;, &amp;#039;ö&amp;#039;)&lt;br /&gt;
	s = string.gsub(s, &amp;#039;ú&amp;#039;, &amp;#039;u&amp;#039;)&lt;br /&gt;
	s = string.gsub(s, &amp;#039;ű&amp;#039;, &amp;#039;ö&amp;#039;)&lt;br /&gt;
	s = string.gsub(s, &amp;#039;ä&amp;#039;, &amp;#039;a&amp;#039;)&lt;br /&gt;
	s = string.gsub(s, &amp;#039;ô&amp;#039;, &amp;#039;o&amp;#039;)&lt;br /&gt;
	s = string.gsub(s, &amp;#039;û&amp;#039;, &amp;#039;u&amp;#039;)&lt;br /&gt;
	return s&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local function numdate(de)&lt;br /&gt;
	local ev, ho, nap, i, j, maradek&lt;br /&gt;
	local de, perek = string.gsub(de, &amp;#039;%-&amp;#039;, &amp;#039;/&amp;#039;)&lt;br /&gt;
	pop(&amp;#039;numdate de perekkel = &amp;#039;, de, tostring(perek))&lt;br /&gt;
	if perek == 2 then&lt;br /&gt;
		i, j = string.find(de, &amp;#039;/&amp;#039;)&lt;br /&gt;
		pop(&amp;#039;numdate_2peres, benne hol a perjel = &amp;#039;, i, j)&lt;br /&gt;
		ev = string.sub(de, 1, j-1)&lt;br /&gt;
		maradek = string.sub(de, j+1, -1)&lt;br /&gt;
		pop(&amp;#039;numdate_2peres: év, maradek = &amp;#039; .. ev .. &amp;#039;, &amp;#039; .. maradek)&lt;br /&gt;
		i, j = string.find(maradek, &amp;#039;/&amp;#039;)&lt;br /&gt;
		pop(&amp;#039;numdate_2peres i,j a hóhoz és naphoz = &amp;#039;, i, j)&lt;br /&gt;
		ho = string.sub(maradek, 1, j-1)&lt;br /&gt;
		nap = string.sub(maradek, j+1, -1)&lt;br /&gt;
		pop(&amp;#039;2peres év, maradekban ho, nap = &amp;#039;, ho, nap)&lt;br /&gt;
	elseif perek == 1 then -- van év és hó&lt;br /&gt;
		i, j = string.find(de, &amp;#039;/&amp;#039;)&lt;br /&gt;
		pop(&amp;#039;numdate_1peres, benne hol a perjel = &amp;#039;, i, j)&lt;br /&gt;
		ev = string.sub(de, 1, j-1)&lt;br /&gt;
		ho = string.sub(de, j+1, -1)&lt;br /&gt;
		pop(&amp;#039;numdate_1peres: év, hó = &amp;#039;, ev, ho)&lt;br /&gt;
	else&lt;br /&gt;
		ev = de&lt;br /&gt;
	end&lt;br /&gt;
	if #ev &amp;lt; 3 then&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
	pop(&amp;#039;év hossza=&amp;#039;, tostring(#ev))&lt;br /&gt;
	if ho then&lt;br /&gt;
		local honum = tonumber(ho)&lt;br /&gt;
		pop(&amp;#039;ho számmal=&amp;#039;, tostring(honum))&lt;br /&gt;
		if honum then&lt;br /&gt;
			if 1 &amp;gt; honum or honum &amp;gt; 12 then&lt;br /&gt;
				-- hónap sorszáma hibás&lt;br /&gt;
				return false&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			if nap then&lt;br /&gt;
				local napnum = tonumber(nap)&lt;br /&gt;
				pop(&amp;#039;nap számmal=&amp;#039;, tostring(napnum))&lt;br /&gt;
				if not (napnum and 1 &amp;lt;= napnum and napnum &amp;lt;= 31) then&lt;br /&gt;
					return false&lt;br /&gt;
				end&lt;br /&gt;
				if szokoev(ev) then&lt;br /&gt;
					honaphossz[2] = 29&lt;br /&gt;
				else&lt;br /&gt;
					honaphossz[2] = 28&lt;br /&gt;
				end&lt;br /&gt;
				if honaphossz[honum] &amp;lt; napnum then&lt;br /&gt;
					pop(&amp;#039;túl a hónaphatáron a nap&amp;#039;)&lt;br /&gt;
					return false -- nap sorszáma hibás&lt;br /&gt;
				else&lt;br /&gt;
					pop(&amp;#039;ellenőrzött év, hó, nap&amp;#039;, ev, ho, nap)&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	de = ev&lt;br /&gt;
	if ho and ho ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		de = de .. &amp;#039;-&amp;#039; .. ho&lt;br /&gt;
	end&lt;br /&gt;
	if nap then&lt;br /&gt;
		de = de .. &amp;#039;-&amp;#039; .. nap&lt;br /&gt;
	end&lt;br /&gt;
	pop(&amp;#039;numdate átadja:&amp;#039;, de)&lt;br /&gt;
	return de&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local function hudate(de)&lt;br /&gt;
	pop(&amp;#039;hudate indul&amp;#039;)&lt;br /&gt;
	local i, j, ev, ho, nap, maradek&lt;br /&gt;
	pop(de)&lt;br /&gt;
	ev = string.match(de, &amp;#039;^%d%d%d%d?&amp;#039;) -- ééé v. éééé levágva ev-be&lt;br /&gt;
	pop(&amp;#039;ev=&amp;#039;, ev)&lt;br /&gt;
	local hostring = string.match(de, &amp;#039;%a+&amp;#039;)&lt;br /&gt;
	if hostring then&lt;br /&gt;
		ho = string.sub(hostring, 1, 3)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	pop(&amp;#039;ho=&amp;#039;, ho)&lt;br /&gt;
	if ho then&lt;br /&gt;
		i, j = string.find(de, ho)&lt;br /&gt;
		maradek = string.gsub(string.sub(de, j+1, -1), &amp;#039;%p&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
		nap = string.match(maradek, &amp;#039;%d%d?&amp;#039;)&lt;br /&gt;
		pop(&amp;#039;nap=&amp;#039;, nap)&lt;br /&gt;
	end&lt;br /&gt;
	if isRoman(ho) then&lt;br /&gt;
		ho = decimal[ho]&lt;br /&gt;
		if ho then&lt;br /&gt;
			-- A római számból decimálist csinál a tábla, ebből ismét string kell,&lt;br /&gt;
			-- hogy az if utasítás végén mindenképpen string hónapunk legyen&lt;br /&gt;
			ho = tostring(ho)&lt;br /&gt;
		else&lt;br /&gt;
			return false&lt;br /&gt;
		end&lt;br /&gt;
		pop(&amp;#039;ho rómaiból = &amp;#039;, ho)&lt;br /&gt;
	else&lt;br /&gt;
		ho = honapsorszamekezetnelkul[ho]&lt;br /&gt;
	end&lt;br /&gt;
	if ho then&lt;br /&gt;
		local honum = tonumber(ho)&lt;br /&gt;
		pop(&amp;#039;honum=&amp;#039;, tostring(honum))&lt;br /&gt;
		if honum then&lt;br /&gt;
			if 1 &amp;gt; honum or honum &amp;gt; 12 then&lt;br /&gt;
				-- A hónap sorszáma hibás&lt;br /&gt;
				return false&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			if nap then&lt;br /&gt;
				local napnum = tonumber(nap)&lt;br /&gt;
				pop(&amp;#039;napnum=&amp;#039;, tostring(napnum))&lt;br /&gt;
				if not (napnum and 1 &amp;lt;= napnum and napnum &amp;lt;= 31) then&lt;br /&gt;
					return false&lt;br /&gt;
				end&lt;br /&gt;
				if szokoev(ev) then&lt;br /&gt;
					honaphossz[2] = 29&lt;br /&gt;
				else&lt;br /&gt;
					honaphossz[2] = 28&lt;br /&gt;
				end&lt;br /&gt;
				if honaphossz[honum] &amp;lt; napnum then&lt;br /&gt;
					pop(&amp;#039;fals nap&amp;#039;)&lt;br /&gt;
					return false -- nap sorszáma hibás&lt;br /&gt;
				else&lt;br /&gt;
					pop(&amp;#039;másodszor&amp;#039;, ev, ho, nap)&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if ho~= nil and #ho &amp;lt; 2 then&lt;br /&gt;
		ho = &amp;#039;0&amp;#039; .. ho&lt;br /&gt;
	end&lt;br /&gt;
	de = ev&lt;br /&gt;
	if ho then&lt;br /&gt;
		de = de .. &amp;#039;-&amp;#039; .. ho&lt;br /&gt;
	end&lt;br /&gt;
	if nap then&lt;br /&gt;
		de = de .. &amp;#039;-&amp;#039; .. nap&lt;br /&gt;
	end&lt;br /&gt;
	return de&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[ datumszuro(de)&lt;br /&gt;
	megszűri a numerikus éééé-hh-nn, illetve a Dec. 10, 2001, 10 january 2001, 2001. december 10 formákat,&lt;br /&gt;
	leellenőrzi a dátumot (hónaphossz, létező hónap sorszám)&lt;br /&gt;
	és valamennyiből az ISO 8604 szabvány szerinti dátumot csinál&lt;br /&gt;
--]]&lt;br /&gt;
local function datumszuro(de)&lt;br /&gt;
	local log, cserelt&lt;br /&gt;
	if not de then&lt;br /&gt;
		return ou, false&lt;br /&gt;
	else&lt;br /&gt;
		de, cserelt = string.gsub(de, &amp;#039;%.&amp;#039;, &amp;#039;-&amp;#039;)&lt;br /&gt;
		if cserelt == 2 then&lt;br /&gt;
			de = string.gsub(de, &amp;#039;%-*$&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
		end -- ha a végén van kötőjel, lecsipjük&lt;br /&gt;
	end&lt;br /&gt;
	pop(&amp;#039;datumszurodatuma paramétere= &amp;#039;, de)&lt;br /&gt;
	de = ekezet_le(de)&lt;br /&gt;
	pop(&amp;#039;ékezetek nélküli dátum=&amp;#039;, de)&lt;br /&gt;
	de = string.gsub(de, &amp;#039;%s&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
	local i, j = string.match(de, &amp;#039;()%d%d%d%d?()&amp;#039;)&lt;br /&gt;
	if not j then&lt;br /&gt;
		return ou, false -- mert nincs év a dátumban&lt;br /&gt;
	else&lt;br /&gt;
		-- ha j == 5, akkor a dátum elején áll az év, magyar a dátum vagy ISO&lt;br /&gt;
		pop(i, j, string.sub(de, i, j-1))&lt;br /&gt;
	end&lt;br /&gt;
	if not de or type(de)~= &amp;#039;string&amp;#039; then&lt;br /&gt;
		return ou, false&lt;br /&gt;
	end&lt;br /&gt;
	local d2 = string.gsub(de, &amp;#039;[%p%-]&amp;#039;, &amp;#039;&amp;#039;) -- punctuation, kötjel is üres lesz&lt;br /&gt;
	pop(&amp;#039;d2 van benne kötjel?&amp;#039;, d2)&lt;br /&gt;
	d2 = tonumber(d2)&lt;br /&gt;
	pop(&amp;#039;d2 mint szám&amp;#039;, d2)&lt;br /&gt;
	if d2 then&lt;br /&gt;
		--[[ a dátum számjegyes&lt;br /&gt;
		  adB1) keresünk %d%d%d%d? mintával négy- vagy háromjegyű decimálist a dátumban&lt;br /&gt;
		      ha van, megnézzük, hogy hol van ő a dátreturn 1, false endumban,&lt;br /&gt;
		      ha elől akkor tényleg magyar a dátum (átadjuk a kezelőjének: ennek nagy része már megvan az datumoutput-ban)&lt;br /&gt;
		      különben ad B2) höz&lt;br /&gt;
		--]]&lt;br /&gt;
		log = numdate(de)&lt;br /&gt;
		if log == false then&lt;br /&gt;
			-- hibás a dátum&lt;br /&gt;
			return ou, false&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		-- betűk is vannak d2-ben&lt;br /&gt;
		local i, j = string.match(de, &amp;#039;()%d%d%d%d?()&amp;#039;)&lt;br /&gt;
		if j == 5 then&lt;br /&gt;
			log = hudate(de)-- mert magyar a dátum&lt;br /&gt;
			pop(&amp;#039;hudate utáni dátum= &amp;#039;, log)-- meghívjuk a magyar dátum lekezelését log vagy false, vagy a magyar dátum&lt;br /&gt;
		else&lt;br /&gt;
			log = en_to_hu(de)&lt;br /&gt;
			pop(&amp;#039;en_to_hu utáni dátum= &amp;#039;, log)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if log == false then&lt;br /&gt;
		-- hibás a dátum&lt;br /&gt;
		return ou, false&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	pop(&amp;#039;dátum a dátumszűrés végén = &amp;#039;, log)&lt;br /&gt;
	return ou, log -- azaz a dátum&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function honapnevesdate(isodate)&lt;br /&gt;
	local ev, ho, nap, i, j, maradek, de&lt;br /&gt;
	if not isodate then&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	isodate = string.gsub(isodate, &amp;#039;%s+&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
	i, j = string.find(isodate, &amp;#039;-&amp;#039;)&lt;br /&gt;
	if i then&lt;br /&gt;
		ev, maradek = string.match(isodate, &amp;#039;(%d+)%s*%-%s*([%d%p%-]+)&amp;#039;) --, ho, nap --%-%s*(%d+)%s*%s*(%d+)%s&amp;quot;&lt;br /&gt;
		pop(&amp;#039;isodate ev,maradek=&amp;#039;, ev, maradek)&lt;br /&gt;
		i, j = string.find(maradek, &amp;#039;-&amp;#039;)&lt;br /&gt;
		if i then&lt;br /&gt;
			ho, nap = string.match(maradek, &amp;#039;(%d+)%s*%-%s*([%d%p%-]+)&amp;#039;)&lt;br /&gt;
			pop(&amp;#039;isodate ho, nap = &amp;#039;, tostring(ho), nap)&lt;br /&gt;
		else&lt;br /&gt;
			ho = maradek&lt;br /&gt;
		end&lt;br /&gt;
		ho = honapok[tonumber(ho)]&lt;br /&gt;
	else&lt;br /&gt;
		ev = isodate&lt;br /&gt;
	end&lt;br /&gt;
	de = ev&lt;br /&gt;
	if ho then&lt;br /&gt;
		de = de .. &amp;#039;. &amp;#039; .. ho&lt;br /&gt;
	end&lt;br /&gt;
	if nap then&lt;br /&gt;
		de = de .. &amp;#039; &amp;#039; .. tonumber(nap) .. &amp;#039;.&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	return de&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- csak a dátumszűrés és a honapnevesdate publikus a modulból&lt;br /&gt;
local q = {&lt;br /&gt;
	datumszuro = datumszuro,&lt;br /&gt;
	honapnevesdate = honapnevesdate&lt;br /&gt;
}&lt;br /&gt;
return q&lt;/div&gt;</summary>
		<author><name>Laci</name></author>
	</entry>
</feed>