<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://bard-wiki.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://bard-wiki.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://bard-wiki.net/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Infocards&amp;action=history"/>
	<updated>2026-10-23T01:52:31Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://bard-wiki.net/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Infocards&amp;diff=5372&amp;oldid=prev</id>
		<title>Admin: 1 версия импортирована</title>
		<link rel="alternate" type="text/html" href="https://bard-wiki.net/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Infocards&amp;diff=5372&amp;oldid=prev"/>
		<updated>2023-06-21T15:34:32Z</updated>

		<summary type="html">&lt;p&gt;1 версия импортирована&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 18:34, 21 июня 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://bard-wiki.net/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Infocards&amp;diff=5371&amp;oldid=prev</id>
		<title>ru&gt;Putnik: переиспользование функции форматирования из Module:Dates для унификации</title>
		<link rel="alternate" type="text/html" href="https://bard-wiki.net/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Infocards&amp;diff=5371&amp;oldid=prev"/>
		<updated>2023-05-29T15:51:46Z</updated>

		<summary type="html">&lt;p&gt;переиспользование функции форматирования из &lt;a href=&quot;/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Dates&quot; title=&quot;Модуль:Dates&quot;&gt;Module:Dates&lt;/a&gt; для унификации&lt;/p&gt;
&lt;a href=&quot;https://bard-wiki.net/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Infocards&amp;amp;diff=5371&amp;amp;oldid=511&quot;&gt;Внесённые изменения&lt;/a&gt;</summary>
		<author><name>ru&gt;Putnik</name></author>
	</entry>
	<entry>
		<id>https://bard-wiki.net/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Infocards&amp;diff=511&amp;oldid=prev</id>
		<title>Admin: 1 версия импортирована</title>
		<link rel="alternate" type="text/html" href="https://bard-wiki.net/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Infocards&amp;diff=511&amp;oldid=prev"/>
		<updated>2023-03-23T07:56:52Z</updated>

		<summary type="html">&lt;p&gt;1 версия импортирована&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 10:56, 23 марта 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://bard-wiki.net/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Infocards&amp;diff=510&amp;oldid=prev</id>
		<title>ru&gt;WindEwriX: да, и вот тут</title>
		<link rel="alternate" type="text/html" href="https://bard-wiki.net/index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:Infocards&amp;diff=510&amp;oldid=prev"/>
		<updated>2021-02-14T08:22:16Z</updated>

		<summary type="html">&lt;p&gt;да, и вот тут&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;quot;Module:Infocards/dateCat&amp;quot;)&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.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;
&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; .. dateCat.categoryUnknownBirthDate&lt;br /&gt;
		else&lt;br /&gt;
			return &amp;quot;&amp;#039;&amp;#039;неизвестно&amp;#039;&amp;#039;&amp;quot;&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 .. dateCat.categoryManualWikification&lt;br /&gt;
		else&lt;br /&gt;
			return bDateStart .. dateOfBirth .. bDateEnd&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;
&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;
					result = result .. dateCat.categoryBigCurrentAge&lt;br /&gt;
				elseif ( age &amp;gt;= 0 ) then&lt;br /&gt;
 					result = result .. dateCat.categoryBiographiesOfLivingPersons&lt;br /&gt;
				else&lt;br /&gt;
					result = result .. 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&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;
	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; .. dateCat.categoryUnknownDeathDate&lt;br /&gt;
		else&lt;br /&gt;
			return &amp;quot;&amp;#039;&amp;#039;неизвестно&amp;#039;&amp;#039;&amp;quot;&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 .. dateCat.categoryManualWikification&lt;br /&gt;
		else&lt;br /&gt;
			return dDateStart .. dateOfDeath .. dDateEnd&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;
&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;
				result = result .. dateCat.categoryRecentlyDeceased&lt;br /&gt;
			elseif (age and age &amp;lt; 0) then&lt;br /&gt;
				result = result .. dateCat.categoryNegativeAge&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return result&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;
local genitivusMonthes = {&amp;#039;января&amp;#039;, &amp;#039;февраля&amp;#039;, &amp;#039;марта&amp;#039;, &amp;#039;апреля&amp;#039;, &amp;#039;мая&amp;#039;, &amp;#039;июня&amp;#039;,&lt;br /&gt;
	&amp;#039;июля&amp;#039;, &amp;#039;августа&amp;#039;, &amp;#039;сентября&amp;#039;, &amp;#039;октября&amp;#039;, &amp;#039;ноября&amp;#039;, &amp;#039;декабря&amp;#039;}&lt;br /&gt;
&lt;br /&gt;
function infocards.formatDateImpl( parsedDate, infocardClass, categoryNamePrefix )&lt;br /&gt;
	local nd = parsedDate[&amp;quot;day&amp;quot;]&lt;br /&gt;
	local nm = parsedDate[&amp;quot;month&amp;quot;]&lt;br /&gt;
	local ny = parsedDate[&amp;quot;year&amp;quot;]&lt;br /&gt;
	local od = parsedDate[&amp;quot;osday&amp;quot;]&lt;br /&gt;
	local om = parsedDate[&amp;quot;osmonth&amp;quot;]&lt;br /&gt;
	local oy = parsedDate[&amp;quot;osyear&amp;quot;]&lt;br /&gt;
	&lt;br /&gt;
	local template =&lt;br /&gt;
		(nd ~= nil and &amp;quot;1&amp;quot; or &amp;quot;&amp;quot;) .. (nm ~= nil and &amp;quot;2&amp;quot; or &amp;quot;&amp;quot;) .. (ny ~= nil and &amp;quot;3&amp;quot; or &amp;quot;&amp;quot;) ..&lt;br /&gt;
		(od ~= nil and &amp;quot;4&amp;quot; or &amp;quot;&amp;quot;) .. (om ~= nil and &amp;quot;5&amp;quot; or &amp;quot;&amp;quot;) .. (oy ~= nil and &amp;quot;6&amp;quot; or &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	local datePart = &amp;#039;&amp;lt;span class=&amp;quot;nowrap&amp;quot;&amp;gt;&amp;#039;&lt;br /&gt;
	if (infocardClass == &amp;quot;bday&amp;quot;) then --[[ Temporary hack in order to enable export dates to wikidata ]]&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;
	if (template == &amp;quot;12&amp;quot;) then&lt;br /&gt;
		datePart = datePart .. string.format( &amp;quot;[[%d %s]]&amp;quot;, nd, genitivusMonthes[nm] )&lt;br /&gt;
	elseif (template == &amp;quot;3&amp;quot;) then&lt;br /&gt;
		datePart = datePart .. infocards.nominativeYear( ny )&lt;br /&gt;
	elseif (template == &amp;quot;123&amp;quot;) then&lt;br /&gt;
		datePart = datePart .. string.format( &amp;quot;[[%d %s]] %s&amp;quot;,&lt;br /&gt;
										nd, genitivusMonthes[nm], infocards.nominativeYear( ny ) )&lt;br /&gt;
	elseif (template == &amp;quot;124&amp;quot;) then&lt;br /&gt;
		datePart = datePart .. string.format( &amp;quot;[[%d %s|%d (%d) %s]]&amp;quot;,&lt;br /&gt;
										nd, genitivusMonthes[nm], od, nd, genitivusMonthes[nm] )&lt;br /&gt;
	elseif (template == &amp;quot;1234&amp;quot;) then&lt;br /&gt;
		datePart = datePart .. string.format( &amp;quot;[[%d %s|%d (%d) %s]] %s&amp;quot;,&lt;br /&gt;
										nd, genitivusMonthes[nm], od, nd, genitivusMonthes[nm], infocards.nominativeYear( ny ) )&lt;br /&gt;
	elseif (template == &amp;quot;1245&amp;quot;) then&lt;br /&gt;
		datePart = datePart .. string.format( &amp;quot;%d %s ([[%d %s]])&amp;quot;,&lt;br /&gt;
										od, genitivusMonthes[om], nd, genitivusMonthes[nm] )&lt;br /&gt;
	elseif (template == &amp;quot;12345&amp;quot;) then&lt;br /&gt;
		datePart = datePart .. string.format( &amp;quot;%d %s ([[%d %s]]) %s&amp;quot;,&lt;br /&gt;
										od, genitivusMonthes[om], nd, genitivusMonthes[nm], infocards.nominativeYear( ny ) )&lt;br /&gt;
	elseif (template == &amp;quot;123456&amp;quot;) then&lt;br /&gt;
		datePart = datePart .. string.format( &amp;#039;%d %s %d&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;nowrap&amp;quot;&amp;gt;([[%d %s]] %s)&amp;#039;,&lt;br /&gt;
										od, genitivusMonthes[om], oy, nd, genitivusMonthes[nm], infocards.nominativeYear( ny ) )&lt;br /&gt;
	else&lt;br /&gt;
		datePart = datePart .. &amp;#039;формат неверен&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	datePart = datePart .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	local infocardTemplate =&lt;br /&gt;
		(nd ~= nil and &amp;quot;1&amp;quot; or &amp;quot;&amp;quot;) .. (nm ~= nil and &amp;quot;2&amp;quot; or &amp;quot;&amp;quot;) .. (ny ~= nil and &amp;quot;3&amp;quot; or &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	if (infocardTemplate == &amp;quot;123&amp;quot;) then&lt;br /&gt;
		datePart = datePart .. string.format(&amp;#039;&amp;lt;span style=&amp;quot;display:none&amp;quot;&amp;gt;(&amp;lt;span class=&amp;quot;%s&amp;quot;&amp;gt;%04d-%02d-%02d&amp;lt;/span&amp;gt;)&amp;lt;/span&amp;gt;&amp;#039;, infocardClass , ny , nm , nd )&lt;br /&gt;
	elseif (infocardTemplate == &amp;quot;23&amp;quot;) then&lt;br /&gt;
		datePart = datePart .. string.format(&amp;#039;&amp;lt;span style=&amp;quot;display:none&amp;quot;&amp;gt;(&amp;lt;span class=&amp;quot;%s&amp;quot;&amp;gt;%04d-%02d&amp;lt;/span&amp;gt;)&amp;lt;/span&amp;gt;&amp;#039;, infocardClass , ny , nm )&lt;br /&gt;
	elseif (infocardTemplate == &amp;quot;3&amp;quot;) then&lt;br /&gt;
		datePart = datePart .. string.format(&amp;#039;&amp;lt;span style=&amp;quot;display:none;&amp;quot;&amp;gt;(&amp;lt;span class=&amp;quot;%s&amp;quot;&amp;gt;%04d&amp;lt;/span&amp;gt;)&amp;lt;/span&amp;gt;&amp;#039;, infocardClass , ny )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if ( categoryNamePrefix ~= nil ) then&lt;br /&gt;
		if ( nd ~= nil and nm ~= nil) then&lt;br /&gt;
			datePart = datePart .. &amp;#039;[[Категория:&amp;#039; .. categoryNamePrefix .. &amp;#039; &amp;#039; .. nd .. &amp;#039; &amp;#039; .. genitivusMonthes[nm] .. &amp;#039;]]&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		if ( ny ~= nil) then&lt;br /&gt;
			datePart = datePart .. &amp;#039;[[Категория:&amp;#039; .. categoryNamePrefix .. &amp;#039; в &amp;#039; .. infocards.inYear( ny ) .. &amp;#039;]]&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return datePart&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function infocards.nominativeYear( year )&lt;br /&gt;
	if ( year &amp;gt;= 0 ) then&lt;br /&gt;
		return &amp;#039;[[&amp;#039; .. year .. &amp;#039; год|&amp;#039; .. year .. &amp;#039;]]&amp;#039;&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;#039;[[&amp;#039; .. ( 0 - year ) .. &amp;#039; год до н. э.|&amp;#039; .. ( 0 - year ) .. &amp;#039; до н. э.]]&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function infocards.inYear( year )&lt;br /&gt;
	if ( year &amp;gt;= 0 ) then&lt;br /&gt;
		return &amp;#039;&amp;#039; .. year .. &amp;#039; году&amp;#039;&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;#039;&amp;#039; .. ( 0 - year) .. &amp;#039; году до н. э.&amp;#039;&lt;br /&gt;
	end&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;
&lt;br /&gt;
	local nd, nm&lt;br /&gt;
		= mw.ustring.match(possibleDateString, &amp;#039;^(%d?%d)%.(%d?%d)$&amp;#039;, 0)&lt;br /&gt;
	if (nd ~= nil and nm ~= nil) then&lt;br /&gt;
		return {day = tonumber(nd), month = tonumber(nm)}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local nd, nm, ny&lt;br /&gt;
		= mw.ustring.match(possibleDateString, &amp;#039;^(%d?%d)%.(%d?%d)%.(%-?%d+)$&amp;#039;, 0)&lt;br /&gt;
	if (nd ~= nil and nm ~= nil and ny ~= nil) then&lt;br /&gt;
		local ndn = tonumber(nd)&lt;br /&gt;
		local nmn = tonumber(nm)&lt;br /&gt;
		local nyn = tonumber(ny)&lt;br /&gt;
		if (ndn &amp;gt; 0 and ndn &amp;lt; 33 and nmn &amp;gt; 0 and nmn &amp;lt; 13) then&lt;br /&gt;
			return {day = ndn, month = nmn, year = nyn}&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>ru&gt;WindEwriX</name></author>
	</entry>
</feed>