<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ro">
	<id>https://enciclopedia.md/index.php?action=history&amp;feed=atom&amp;title=Modul%3AGregorianDate</id>
	<title>Modul:GregorianDate - Revizia istoricului</title>
	<link rel="self" type="application/atom+xml" href="https://enciclopedia.md/index.php?action=history&amp;feed=atom&amp;title=Modul%3AGregorianDate"/>
	<link rel="alternate" type="text/html" href="https://enciclopedia.md/index.php?title=Modul:GregorianDate&amp;action=history"/>
	<updated>2026-04-22T15:30:44Z</updated>
	<subtitle>Istoricul versiunilor pentru această pagină din wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://enciclopedia.md/index.php?title=Modul:GregorianDate&amp;diff=340&amp;oldid=prev</id>
		<title>Sergiu: Pagină nouă: local p = {}  local DateUtils = require(&#039;Modul:DateUtils&#039;) local getArgs = require(&#039;Modul:Arguments&#039;).getArgs local data = mw.loadData(&#039;Modul:GregorianDate/data&#039;)  local compareDates = function(date1, date2) 	if date1.year &lt; date2.year then return 1 end 	if date2.year &lt; date1.year then return -1 end  	if date1.month &lt; date2.month then return 1 end 	if date2.month &lt; date1.month then return -1 end  	if date1.day &lt; date2.day then return 1 end 	if date2.day &lt; date1.day then retur...</title>
		<link rel="alternate" type="text/html" href="https://enciclopedia.md/index.php?title=Modul:GregorianDate&amp;diff=340&amp;oldid=prev"/>
		<updated>2024-07-14T20:16:07Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: local p = {}  local DateUtils = require(&amp;#039;Modul:DateUtils&amp;#039;) local getArgs = require(&amp;#039;Modul:Arguments&amp;#039;).getArgs local data = mw.loadData(&amp;#039;Modul:GregorianDate/data&amp;#039;)  local compareDates = function(date1, date2) 	if date1.year &amp;lt; date2.year then return 1 end 	if date2.year &amp;lt; date1.year then return -1 end  	if date1.month &amp;lt; date2.month then return 1 end 	if date2.month &amp;lt; date1.month then return -1 end  	if date1.day &amp;lt; date2.day then return 1 end 	if date2.day &amp;lt; date1.day then retur...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Pagină nouă&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local DateUtils = require(&amp;#039;Modul:DateUtils&amp;#039;)&lt;br /&gt;
local getArgs = require(&amp;#039;Modul:Arguments&amp;#039;).getArgs&lt;br /&gt;
local data = mw.loadData(&amp;#039;Modul:GregorianDate/data&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local compareDates = function(date1, date2)&lt;br /&gt;
	if date1.year &amp;lt; date2.year then return 1 end&lt;br /&gt;
	if date2.year &amp;lt; date1.year then return -1 end&lt;br /&gt;
&lt;br /&gt;
	if date1.month &amp;lt; date2.month then return 1 end&lt;br /&gt;
	if date2.month &amp;lt; date1.month then return -1 end&lt;br /&gt;
&lt;br /&gt;
	if date1.day &amp;lt; date2.day then return 1 end&lt;br /&gt;
	if date2.day &amp;lt; date1.day then return -1 end&lt;br /&gt;
	&lt;br /&gt;
	return 0&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local initialOffset = -3&lt;br /&gt;
local limitDates = data.limitDates&lt;br /&gt;
local julianDateOfGregorianStart = data.julianDateOfGregorianStart&lt;br /&gt;
&lt;br /&gt;
p.julianToGregorian = function(indate)&lt;br /&gt;
	if indate.calendarmodel ~= &amp;#039;http://www.wikidata.org/entity/Q1985786&amp;#039; and indate.calendarmodel ~= &amp;#039;http://www.wikidata.org/entity/Q11184&amp;#039;&lt;br /&gt;
		and indate.calendar ~= &amp;#039;julian&amp;#039; then&lt;br /&gt;
			return indate&lt;br /&gt;
	end&lt;br /&gt;
	local offset = initialOffset&lt;br /&gt;
	local limitDateIdx = 1&lt;br /&gt;
	while limitDateIdx &amp;lt; data.limitDatesSize and compareDates(limitDates[limitDateIdx], indate) &amp;gt;= 0 do&lt;br /&gt;
		limitDateIdx = limitDateIdx + 1&lt;br /&gt;
		offset = offset + 1&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local outputDate = DateUtils.addDaysToDate(indate, offset)&lt;br /&gt;
	outputDate.calendar = &amp;#039;gregorian&amp;#039;&lt;br /&gt;
	outputDate.calendarmodel = &amp;#039;http://www.wikidata.org/entity/Q1985727&amp;#039;&lt;br /&gt;
	&lt;br /&gt;
	return outputDate&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function extractDateFromFrame(frame)&lt;br /&gt;
	local outdate = {}&lt;br /&gt;
	local frameargs = getArgs(frame)&lt;br /&gt;
	outdate.year = tonumber(frameargs[1] or frameargs[&amp;#039;year&amp;#039;] or 1)&lt;br /&gt;
	outdate.month = tonumber(frameargs[2] or frameargs[&amp;#039;month&amp;#039;] or 1)&lt;br /&gt;
	outdate.day = tonumber(frameargs[3] or frameargs[&amp;#039;day&amp;#039;] or 1)&lt;br /&gt;
	outdate.precision = 8&lt;br /&gt;
	if frameargs[1] or frameargs[&amp;#039;year&amp;#039;] then&lt;br /&gt;
		if frameargs[2] or frameargs[&amp;#039;month&amp;#039;] then&lt;br /&gt;
			if frameargs[3] or frameargs[&amp;#039;day&amp;#039;] then&lt;br /&gt;
				outdate.precision = outdate.precision + 1&lt;br /&gt;
			end&lt;br /&gt;
			outdate.precision = outdate.precision + 1&lt;br /&gt;
		end&lt;br /&gt;
		outdate.precision = outdate.precision + 1&lt;br /&gt;
	end&lt;br /&gt;
	outdate.calendar = mw.ustring.lower(mw.text.trim(frameargs[&amp;#039;calendar&amp;#039;] or &amp;#039;gregorian&amp;#039;))&lt;br /&gt;
	return outdate&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.julianToGregorianFromFrame = function(frame)&lt;br /&gt;
	local indate = extractDateFromFrame(frame)&lt;br /&gt;
	indate.calendar = &amp;#039;julian&amp;#039;&lt;br /&gt;
	return DateUtils.formatDate(p.julianToGregorian(indate))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.convertToGregorianIfInInterval = function(indate)&lt;br /&gt;
	local outdate = indate&lt;br /&gt;
	if compareDates(julianDateOfGregorianStart, indate) &amp;gt;= 0 then&lt;br /&gt;
		outdate = p.julianToGregorian(indate)&lt;br /&gt;
	end&lt;br /&gt;
	return outdate&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.displayDualDateIfInInterval = function(indate, link, dateFormat, julianFormat)&lt;br /&gt;
	local outdate = p.convertToGregorianIfInInterval(indate)&lt;br /&gt;
	local gregoriandate = compareDates(julianDateOfGregorianStart, indate) &amp;lt; 0 and p.julianToGregorian(indate) or outdate&lt;br /&gt;
	local linkstat = { old = false, new = false }&lt;br /&gt;
	if (type(link) == &amp;#039;boolean&amp;#039;) and link or link == &amp;#039;both&amp;#039; or link == &amp;#039;ambele&amp;#039; then&lt;br /&gt;
		linkstat.old = true&lt;br /&gt;
		linkstat.new = true&lt;br /&gt;
	elseif link == &amp;#039;old&amp;#039; then&lt;br /&gt;
		linkstat.old = true&lt;br /&gt;
	elseif link == &amp;#039;new&amp;#039; then&lt;br /&gt;
		linkstat.new = true&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local fullDate&lt;br /&gt;
	if outdate.year ~= indate.year then&lt;br /&gt;
		fullDate = DateUtils.formatDate(indate, linkstat.old, true, julianFormat or dateFormat) .. &amp;#039;/&amp;#039; .. DateUtils.formatDate(outdate, linkstat.new, true, dateFormat)&lt;br /&gt;
	elseif outdate.month ~= indate.month then&lt;br /&gt;
		fullDate = DateUtils.formatDate(indate, linkstat.old, true, julianFormat or dateFormat or linkstat.old and &amp;#039;[[j F]]&amp;#039; or &amp;#039;j F&amp;#039;) .. &amp;#039;/&amp;#039; .. DateUtils.formatDate(outdate, linkstat.new, true, dateFormat)&lt;br /&gt;
	elseif outdate.day ~= indate.day then&lt;br /&gt;
		fullDate = DateUtils.formatDate(indate, linkstat.old, true, julianFormat or dateFormat or linkstat.old and &amp;#039;[[j F|j]]&amp;#039; or &amp;#039;j&amp;#039;) .. &amp;#039;/&amp;#039; .. DateUtils.formatDate(outdate, linkstat.new, true, dateFormat)&lt;br /&gt;
	else&lt;br /&gt;
		fullDate = DateUtils.formatDate(outdate, linkstat.new or linkstat.old, true, dateFormat)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return indate.precision &amp;gt;= 11 and DateUtils.surroundWithTimeTag(fullDate, gregoriandate) or fullDate&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.displayDualDateIfInIntervalFromFrame = function(frame)&lt;br /&gt;
	local indate = extractDateFromFrame(frame)&lt;br /&gt;
	local args = getArgs(frame)&lt;br /&gt;
	indate.calendar = indate.calendar or (frame.args[&amp;#039;julian&amp;#039;] and &amp;#039;julian&amp;#039; or &amp;#039;gregorian&amp;#039;)&lt;br /&gt;
	local link = args[&amp;#039;link&amp;#039;]&lt;br /&gt;
	local argslink = args[&amp;#039;link&amp;#039;]&lt;br /&gt;
	if argslink == &amp;#039;yes&amp;#039; or argslink == &amp;#039;y&amp;#039; or argslink == &amp;#039;da&amp;#039; or argslink == &amp;#039;true&amp;#039; or argslink == &amp;#039;d&amp;#039; then link = &amp;#039;both&amp;#039; end&lt;br /&gt;
	&lt;br /&gt;
	local dateFormat = args[&amp;#039;format&amp;#039;] or args[&amp;#039;date_format&amp;#039;] or args[&amp;#039;dateFormat&amp;#039;]&lt;br /&gt;
	&lt;br /&gt;
	return p.displayDualDateIfInInterval(indate, link, dateFormat)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Sergiu</name></author>
	</entry>
</feed>