<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://vion.tail5ecd76.ts.net/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3AInfocards</id>
	<title>Модуль:Infocards - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://vion.tail5ecd76.ts.net/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3AInfocards"/>
	<link rel="alternate" type="text/html" href="https://vion.tail5ecd76.ts.net/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Infocards&amp;action=history"/>
	<updated>2026-11-08T04:39:10Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://vion.tail5ecd76.ts.net/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Infocards&amp;diff=7232&amp;oldid=prev</id>
		<title>wp&gt;ru.wikipedia: Импорт из русской Википедии, версия 154235056</title>
		<link rel="alternate" type="text/html" href="https://vion.tail5ecd76.ts.net/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Infocards&amp;diff=7232&amp;oldid=prev"/>
		<updated>2026-08-03T16:41:57Z</updated>

		<summary type="html">&lt;p&gt;Импорт из русской Википедии, версия 154235056&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local infocards = {}&lt;br /&gt;
local calculateAge = true&lt;br /&gt;
local dateCat = require( &amp;#039;Module:Infocards/dateCat&amp;#039; )&lt;br /&gt;
local moduleDates = require( &amp;#039;Module:Dates&amp;#039; )&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Helper function that populates the argument list given that user may need to use a mix of&lt;br /&gt;
named and unnamed parameters.  This is relevant because named parameters are not&lt;br /&gt;
identical to unnamed parameters due to string trimming, and when dealing with strings&lt;br /&gt;
we sometimes want to either preserve or remove that whitespace depending on the application.&lt;br /&gt;
]]&lt;br /&gt;
function infocards._getParameters( frame_args, arg_list )&lt;br /&gt;
	local new_args = {}&lt;br /&gt;
	local index = 1&lt;br /&gt;
	local value&lt;br /&gt;
&lt;br /&gt;
	for i,arg in ipairs( arg_list ) do&lt;br /&gt;
		value = frame_args[arg]&lt;br /&gt;
		if value == nil then&lt;br /&gt;
			value = frame_args[index]&lt;br /&gt;
			index = index + 1&lt;br /&gt;
		end&lt;br /&gt;
		new_args[arg] = value&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return new_args&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function infocards.isBlank( someString )&lt;br /&gt;
	return someString == nil or mw.ustring.match(someString, &amp;#039;^%s*$&amp;#039;) ~= nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function infocards.isDate ( frame )&lt;br /&gt;
	local new_args = infocards._getParameters( frame.args, {&amp;#039;s&amp;#039;, &amp;#039;t&amp;#039;, &amp;#039;f&amp;#039;} )&lt;br /&gt;
	local s = new_args[&amp;#039;s&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
	local t = new_args[&amp;#039;t&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
	local f = new_args[&amp;#039;f&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	local result = infocards.isDateImpl ( s )&lt;br /&gt;
	if (result) then&lt;br /&gt;
		return t&lt;br /&gt;
	else&lt;br /&gt;
		return f&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function infocards.isDateImpl ( s )&lt;br /&gt;
	local converted = infocards.convertToDate ( s )&lt;br /&gt;
	return converted ~= nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function infocards.extractDateAndRefs( dateStr )&lt;br /&gt;
	if type(dateStr) ~= &amp;#039;string&amp;#039; or dateStr == &amp;#039;&amp;#039; then return dateStr, &amp;#039;&amp;#039; end&lt;br /&gt;
	local dateClean, refs = mw.ustring.match(dateStr, &amp;#039;^(.-)(%s*[&amp;lt;{%[\127].*)$&amp;#039;)&lt;br /&gt;
	if dateClean and infocards.convertToDate(dateClean) then&lt;br /&gt;
		return dateClean, refs&lt;br /&gt;
	end&lt;br /&gt;
	return dateStr, &amp;#039;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function infocards.dateOfBirth( frame )&lt;br /&gt;
	local new_args = infocards._getParameters( frame.args, {&amp;#039;dateOfBirth&amp;#039;, &amp;#039;dateOfDeath&amp;#039;, &amp;#039;suppressAge&amp;#039;, &amp;#039;nocat&amp;#039;} )&lt;br /&gt;
	local dateOfBirth = new_args[&amp;#039;dateOfBirth&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
	local dateOfDeath = new_args[&amp;#039;dateOfDeath&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
	local suppressAge = new_args[&amp;#039;suppressAge&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
	local nocat = new_args[&amp;#039;nocat&amp;#039;] or mw.title.getCurrentTitle().nsText&lt;br /&gt;
&lt;br /&gt;
	return infocards.dateOfBirthImpl( dateOfBirth, dateOfDeath, suppressAge, nocat )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function infocards.dateOfBirthImpl( dateOfBirth, dateOfDeath, suppressAge, nocat )&lt;br /&gt;
&lt;br /&gt;
	local appendToCategory = infocards.isBlank( nocat )&lt;br /&gt;
	local bRefs = &amp;#039;&amp;#039;&lt;br /&gt;
	dateOfBirth, bRefs = infocards.extractDateAndRefs( dateOfBirth )&lt;br /&gt;
	dateOfDeath = infocards.extractDateAndRefs( dateOfDeath )&lt;br /&gt;
&lt;br /&gt;
	if ( infocards.isBlank( dateOfBirth ) ) then&lt;br /&gt;
		if ( appendToCategory ) then&lt;br /&gt;
			return dateCat.categoryNoBirthDate&lt;br /&gt;
		else&lt;br /&gt;
			return &amp;#039;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( mw.ustring.match( dateOfBirth, &amp;#039;^%s*неизвестн.%s*$&amp;#039; ) ~= nil&lt;br /&gt;
			or mw.ustring.match( dateOfBirth, &amp;#039;^%s*%?%s*$&amp;#039; ) ~= nil ) then&lt;br /&gt;
		if ( appendToCategory ) then&lt;br /&gt;
			return &amp;quot;&amp;#039;&amp;#039;неизвестно&amp;#039;&amp;#039;&amp;quot; .. bRefs .. dateCat.categoryUnknownBirthDate&lt;br /&gt;
		else&lt;br /&gt;
			return &amp;quot;&amp;#039;&amp;#039;неизвестно&amp;#039;&amp;#039;&amp;quot; .. bRefs&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local appendAge = not (suppressAge ~= &amp;#039;&amp;#039; or not calculateAge) and infocards.isBlank( dateOfDeath )&lt;br /&gt;
&lt;br /&gt;
	local parsedDate = infocards.convertToDate ( dateOfBirth )&lt;br /&gt;
	if ( parsedDate == nil ) then&lt;br /&gt;
		--[[ Temporary hack in order to enable export dates to wikidata ]]&lt;br /&gt;
		local bDateStart = &amp;#039;&amp;lt;span class=&amp;quot;no-wikidata&amp;quot; data-wikidata-property-id=&amp;quot;P569&amp;quot;&amp;gt;&amp;#039;&lt;br /&gt;
		local bDateEnd = &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
		if ( appendToCategory ) then&lt;br /&gt;
			return bDateStart .. dateOfBirth .. bDateEnd .. bRefs .. dateCat.categoryManualWikification&lt;br /&gt;
		else&lt;br /&gt;
			return bDateStart .. dateOfBirth .. bDateEnd .. bRefs&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local result = infocards.formatDateImpl ( parsedDate, &amp;#039;bday&amp;#039;, appendToCategory and &amp;#039;Родившиеся&amp;#039; or nil )&lt;br /&gt;
	local categories = &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	if ( appendAge ) then&lt;br /&gt;
		-- TODO: месяцы и дни для (нескольких) новорождённых (см. новейшие [[Категория:Родившиеся в ГГГГ году]])&lt;br /&gt;
		local age = infocards.age ( parsedDate,  os.date(&amp;quot;*t&amp;quot;) )&lt;br /&gt;
		if ( age and age &amp;lt; 125) then&lt;br /&gt;
			result = result .. &amp;#039; &amp;lt;span class=&amp;quot;nowrap&amp;quot;&amp;gt;(&amp;#039; .. age .. &amp;#039; &amp;#039; .. mw.language.new( &amp;#039;ru&amp;#039; ):plural( age, &amp;#039;год&amp;#039;, &amp;#039;года&amp;#039;, &amp;#039;лет&amp;#039;) .. &amp;#039;)&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		if ( appendToCategory ) then&lt;br /&gt;
			if (not age and parsedDate and parsedDate.year ) then&lt;br /&gt;
				age = os.date(&amp;#039;*t&amp;#039;).year - parsedDate.year -- при неточной дате&lt;br /&gt;
 			end&lt;br /&gt;
			if ( age ) then&lt;br /&gt;
				if ( age &amp;gt; 115 ) then&lt;br /&gt;
					categories = categories .. dateCat.categoryBigCurrentAge&lt;br /&gt;
&lt;br /&gt;
				-- Возраст от 0 до 115 лет + не существует даты смерти (в т. ч. не написано &amp;quot;неизвестно&amp;quot;)&lt;br /&gt;
				elseif ( age &amp;gt;= 0 ) then&lt;br /&gt;
					categories = categories .. dateCat.categoryBiographiesOfLivingPersons&lt;br /&gt;
				else&lt;br /&gt;
					categories = categories .. dateCat.categoryNegativeAge&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return result .. bRefs .. categories&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function infocards.dateOfDeath( frame )&lt;br /&gt;
	local new_args = infocards._getParameters( frame.args, {&amp;#039;dateOfBirth&amp;#039;, &amp;#039;dateOfDeath&amp;#039;, &amp;#039;nocat&amp;#039;} )&lt;br /&gt;
	local dateOfBirth = new_args[&amp;#039;dateOfBirth&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
	local dateOfDeath = new_args[&amp;#039;dateOfDeath&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
	local nocat = new_args[&amp;#039;nocat&amp;#039;] or mw.title.getCurrentTitle().nsText&lt;br /&gt;
&lt;br /&gt;
	return infocards.dateOfDeathImpl( dateOfBirth, dateOfDeath, nocat )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function infocards.dateOfDeathImpl( dateOfBirth, dateOfDeath, nocat )&lt;br /&gt;
	local bRefs = &amp;#039;&amp;#039;&lt;br /&gt;
	local dRefs = &amp;#039;&amp;#039;&lt;br /&gt;
	dateOfBirth, bRefs = infocards.extractDateAndRefs( dateOfBirth )&lt;br /&gt;
	dateOfDeath, dRefs = infocards.extractDateAndRefs( dateOfDeath )&lt;br /&gt;
&lt;br /&gt;
	if ( infocards.isBlank( dateOfDeath ) ) then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local appendToCategory = infocards.isBlank( nocat )&lt;br /&gt;
&lt;br /&gt;
	if ( mw.ustring.match( dateOfDeath, &amp;#039;^%s*неизвестн.%s*$&amp;#039; ) ~= nil&lt;br /&gt;
			or mw.ustring.match( dateOfDeath, &amp;#039;^%s*%?%s*$&amp;#039; ) ~= nil ) then&lt;br /&gt;
		if ( appendToCategory ) then&lt;br /&gt;
			return &amp;quot;&amp;#039;&amp;#039;неизвестно&amp;#039;&amp;#039;&amp;quot; .. dRefs .. dateCat.categoryUnknownDeathDate&lt;br /&gt;
		else&lt;br /&gt;
			return &amp;quot;&amp;#039;&amp;#039;неизвестно&amp;#039;&amp;#039;&amp;quot; .. dRefs&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local parsedDateOfBirth = infocards.convertToDate ( dateOfBirth )&lt;br /&gt;
	local parsedDateOfDeath = infocards.convertToDate ( dateOfDeath )&lt;br /&gt;
&lt;br /&gt;
	if ( parsedDateOfDeath == nil ) then&lt;br /&gt;
		--[[ Temporary hack in order to enable export dates to wikidata ]]&lt;br /&gt;
		local dDateStart = &amp;#039;&amp;lt;span class=&amp;quot;no-wikidata&amp;quot; data-wikidata-property-id=&amp;quot;P570&amp;quot;&amp;gt;&amp;#039;&lt;br /&gt;
		local dDateEnd = &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
		if ( appendToCategory ) then&lt;br /&gt;
			return dDateStart .. dateOfDeath .. dDateEnd .. dRefs .. dateCat.categoryManualWikification&lt;br /&gt;
		else&lt;br /&gt;
			return dDateStart .. dateOfDeath .. dDateEnd .. dRefs&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local result = infocards.formatDateImpl ( parsedDateOfDeath, &amp;#039;dday&amp;#039;, appendToCategory and &amp;#039;Умершие&amp;#039; or nil )&lt;br /&gt;
	local categories = &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	if ( calculateAge ) then&lt;br /&gt;
		local age = infocards.age ( parsedDateOfBirth, parsedDateOfDeath )&lt;br /&gt;
		if ( age and age &amp;gt; 0 ) then&lt;br /&gt;
			result = result .. &amp;#039; &amp;lt;span class=&amp;quot;nowrap&amp;quot;&amp;gt;(&amp;#039; .. age .. &amp;#039; &amp;#039; .. mw.language.new( &amp;#039;ru&amp;#039; ):plural( age, &amp;#039;год&amp;#039;, &amp;#039;года&amp;#039;, &amp;#039;лет&amp;#039;) .. &amp;#039;)&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- returns category to recently deceased persons&lt;br /&gt;
		local unixAvailable, unixDateOfDeath = pcall(function()&lt;br /&gt;
			local r = os.time(parsedDateOfDeath)&lt;br /&gt;
			if ( r ~= os.time() ) then&lt;br /&gt;
				return r&lt;br /&gt;
			end&lt;br /&gt;
			error()&lt;br /&gt;
		end)&lt;br /&gt;
		if (appendToCategory) then&lt;br /&gt;
			if ( unixAvailable and os.time() - unixDateOfDeath &amp;lt; 31536000 ) then&lt;br /&gt;
				categories = categories .. dateCat.categoryRecentlyDeceased&lt;br /&gt;
			elseif (age and age &amp;lt; 0) then&lt;br /&gt;
				categories = categories .. dateCat.categoryNegativeAge&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return result .. dRefs .. categories&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function infocards.age( parsedBirthDate, parsedFinishDate )&lt;br /&gt;
	if ( parsedBirthDate == nil or parsedFinishDate == nil ) then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local bd = parsedBirthDate[&amp;quot;day&amp;quot;]&lt;br /&gt;
	local bm = parsedBirthDate[&amp;quot;month&amp;quot;]&lt;br /&gt;
	local by = parsedBirthDate[&amp;quot;year&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
	local dd = parsedFinishDate[&amp;quot;day&amp;quot;]&lt;br /&gt;
	local dm = parsedFinishDate[&amp;quot;month&amp;quot;]&lt;br /&gt;
	local dy = parsedFinishDate[&amp;quot;year&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
	if ( bd and bm and by and dd and dm and dy ) then&lt;br /&gt;
		if ( dm &amp;gt; bm or ( dm == bm and dd &amp;gt;= bd ) ) then&lt;br /&gt;
			return dy - by&lt;br /&gt;
		else&lt;br /&gt;
			return dy - by - 1&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function infocards.formatDateImpl( parsedDate, infocardClass, categoryNamePrefix )&lt;br /&gt;
	local datePart = &amp;#039;&amp;lt;span class=&amp;quot;nowrap&amp;quot;&amp;gt;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	--Temporary hack in order to enable export dates to wikidata&lt;br /&gt;
	if infocardClass == &amp;quot;bday&amp;quot; then&lt;br /&gt;
		datePart = &amp;#039;&amp;lt;span class=&amp;quot;no-wikidata&amp;quot; data-wikidata-property-id=&amp;quot;P569&amp;quot;&amp;gt;&amp;#039;&lt;br /&gt;
	elseif infocardClass == &amp;quot;dday&amp;quot; then&lt;br /&gt;
		datePart = &amp;#039;&amp;lt;span class=&amp;quot;no-wikidata&amp;quot; data-wikidata-property-id=&amp;quot;P570&amp;quot;&amp;gt;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local t1 = { day = parsedDate.osday, month = parsedDate.osmonth, year = parsedDate.osyear }&lt;br /&gt;
	local t2 = { day = parsedDate.day, month = parsedDate.month, year = parsedDate.year }&lt;br /&gt;
	datePart = datePart .. moduleDates.formatWikiImpl( t1, t2, infocardClass, categoryNamePrefix )&lt;br /&gt;
&lt;br /&gt;
	datePart = datePart .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	return datePart&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function infocards.convertToDate( possibleDateString )&lt;br /&gt;
&lt;br /&gt;
	possibleDateString = mw.ustring.gsub( possibleDateString, &amp;#039;−&amp;#039;, &amp;#039;-&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	local simpleDate = mw.ustring.match(possibleDateString, &amp;#039;^%s*([%-%d%.]+)%s*$&amp;#039;, 0)&lt;br /&gt;
	if ( simpleDate ) then&lt;br /&gt;
		return infocards.convertToDateNewStylePart( simpleDate )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local complexDate1, complexDate2 = mw.ustring.match(possibleDateString, &amp;#039;^%s*([%-%d%.]+)%s*%(([%-%d%.]+)%)%s*$&amp;#039;, 0)&lt;br /&gt;
	if ( complexDate1 and complexDate2) then&lt;br /&gt;
		local table1 = infocards.convertToDateNewStylePart( complexDate1 )&lt;br /&gt;
		local table2 = infocards.convertToDateOldStylePart( complexDate2 )&lt;br /&gt;
		if ( table1 and table2 ) then&lt;br /&gt;
			return {&lt;br /&gt;
					year = table1[&amp;quot;year&amp;quot;], month = table1[&amp;quot;month&amp;quot;], day = table1[&amp;quot;day&amp;quot;], &lt;br /&gt;
					osyear = table2[&amp;quot;year&amp;quot;], osmonth = table2[&amp;quot;month&amp;quot;], osday = table2[&amp;quot;day&amp;quot;]&lt;br /&gt;
				}&lt;br /&gt;
		else&lt;br /&gt;
			return nil&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function infocards.convertToDateNewStylePart( possibleDateString )&lt;br /&gt;
&lt;br /&gt;
	local ny = mw.ustring.match(possibleDateString, &amp;#039;^(%-?%d+)$&amp;#039;, 0)&lt;br /&gt;
	if (ny ~= nil) then&lt;br /&gt;
		return {year = tonumber(ny)}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return infocards.convertToDateCommonPart( possibleDateString )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function infocards.convertToDateOldStylePart( possibleDateString )&lt;br /&gt;
&lt;br /&gt;
	local nd = mw.ustring.match(possibleDateString, &amp;#039;^(%-?%d+)$&amp;#039;, 0)&lt;br /&gt;
	if (nd ~= nil) then&lt;br /&gt;
		return {day = tonumber(nd)}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return infocards.convertToDateCommonPart( possibleDateString )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function infocards.convertToDateCommonPart( possibleDateString )&lt;br /&gt;
	local sDay, sMonth, sYear&lt;br /&gt;
	local day, month, year&lt;br /&gt;
&lt;br /&gt;
	sDay, sMonth, sYear = mw.ustring.match( possibleDateString, &amp;#039;^(%d?%d)%.(%d?%d)%.(%-?%d+)$&amp;#039;, 0 )&lt;br /&gt;
	if sDay ~= nil and sMonth ~= nil and sYear ~= nil then&lt;br /&gt;
		day = tonumber( sDay )&lt;br /&gt;
		month = tonumber( sMonth )&lt;br /&gt;
		year = tonumber( sYear )&lt;br /&gt;
		if day &amp;gt;= 1 and day &amp;lt;= 32 and month &amp;gt;= 1 and month &amp;lt;= 12 then&lt;br /&gt;
			return { day = day, month = month, year = year }&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	sDay, sMonth = mw.ustring.match( possibleDateString, &amp;#039;^(%d?%d)%.(%d?%d+)$&amp;#039;, 0 )&lt;br /&gt;
	if sDay ~= nil and sMonth ~= nil then&lt;br /&gt;
		day = tonumber( sDay )&lt;br /&gt;
		month = tonumber( sMonth )&lt;br /&gt;
		if day &amp;gt;= 1 and day &amp;lt;= 32 and month &amp;gt;= 1 and month &amp;lt;= 12 then&lt;br /&gt;
			return { day = day, month = month }&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	sMonth, sYear = mw.ustring.match( possibleDateString, &amp;#039;^(%d?%d)%.(%-?%d+)$&amp;#039;, 0 )&lt;br /&gt;
    if sMonth ~= nil and sYear ~= nil then&lt;br /&gt;
    	month = tonumber( sMonth )&lt;br /&gt;
    	year = tonumber( sYear )&lt;br /&gt;
    	if month &amp;gt;= 1 and month &amp;lt;= 12 then&lt;br /&gt;
        	return { month = month, year = year }&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
	return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return infocards&lt;/div&gt;</summary>
		<author><name>wp&gt;ru.wikipedia</name></author>
	</entry>
</feed>