أهلاً بكم، في الموسوعة القبطية الأرثوذكسية
الفرق بين المراجعتين لصفحة: «وحدة:CopticDate»
من كوبتيكبيديا
اذهب إلى التنقلاذهب الى البحث
سطر ١: | سطر ١: | ||
local p = {}; | local p = {}; | ||
function p.toCoptic(frame) -- {{#invoke:CopticDate|toCoptic|year|month|day}} | function p.toCoptic(frame) -- {{#invoke:CopticDate|toCoptic|year|month|day}} | ||
local intYear = tonumber(frame.args[1]) | local intYear = tonumber(frame.args[1]) | ||
سطر ٦: | سطر ٧: | ||
local SeparatorString = frame.args[4] | local SeparatorString = frame.args[4] | ||
local StringFormat = frame.args[5] | local StringFormat = frame.args[5] | ||
local SiniksarFormat = frame.args[6] | |||
سطر ٤٥: | سطر ٤٧: | ||
if StringFormat == nil or StringFormat == "" then | if StringFormat == nil or StringFormat == "" then | ||
return(finalDay .. SeparatorString .. finalMonth .. SeparatorString .. finalYear) | if SiniksarFormat == nil or SiniksarFormat == "" then | ||
return(finalDay .. SeparatorString .. finalMonth .. SeparatorString .. finalYear) | |||
else | |||
return(finalDay .. SeparatorString .. finalMonth) | |||
end | |||
else | else | ||
return(finalDay .. SeparatorString .. finalMonthString[finalMonth] .. SeparatorString .. finalYear) | if SiniksarFormat == nil or SiniksarFormat == "" then | ||
return(finalDay .. SeparatorString .. finalMonthString[finalMonth] .. SeparatorString .. finalYear) | |||
else | |||
return(finalDay .. SeparatorString .. finalMonthString[finalMonth]) | |||
end | |||
end | end | ||
end | end | ||
return p | return p |
مراجعة ١٤:٣٧، ٢٧ أكتوبر ٢٠٢١
يمكن إنشاء صفحة توثيق الوحدة في وحدة:CopticDate/شرح
local p = {};
function p.toCoptic(frame) -- {{#invoke:CopticDate|toCoptic|year|month|day}}
local intYear = tonumber(frame.args[1])
local intMonth = tonumber(frame.args[2])
local intDay = tonumber(frame.args[3])
local SeparatorString = frame.args[4]
local StringFormat = frame.args[5]
local SiniksarFormat = frame.args[6]
if intYear == nil then
intYear = tonumber(os.date( "%Y" ))
end
if intMonth == nil then
intMonth = tonumber(os.date( "%m" ))
end
if intDay == nil then
intDay = tonumber(os.date( "%d" ))
end
if SeparatorString == nil or SeparatorString == "" then
SeparatorString = " "
end
local aMonth = math.floor(math.abs((14 - intMonth) / 12))
local jYear = intYear + 4800 - aMonth
local jMonth = intMonth + 12 * aMonth - 3
local julianDate = intDay + math.floor(math.abs((153 * jMonth + 2) / 5)) + 365 * jYear + math.floor(math.abs(jYear / 4)) - math.floor(math.abs(jYear / 100)) + math.floor(math.abs(jYear / 400)) - 32045
local julianBase = math.floor(math.abs(julianDate + 0.5)) + 124
local baseYear = (4 * julianBase + 3) / 1461
local baseLeap = ((4 * julianBase + 3) % 1461) / 4
local baseMonth = baseLeap / 30
local baseDay = baseLeap % 30
local finalDay = math.floor(math.abs(baseDay + 1))
local finalMonth = math.floor(math.abs((baseMonth % 13) + 1))
local finalYear = math.floor(math.abs(baseYear - 4996 + (13 - finalMonth) / 13))
local finalMonthString = { "[[توت (شهر)|توت]]", "[[بابه]]", "[[هاتور]]", "[[كياك]]", "[[طوبه(شهر)|طوبه]]", "[[امشير]]", "[[بارمهات]]", "[[بارموده]]", "[[بشنس]]", "[[بؤونه]]", "[[ابيب]]", "[[مسرا]]", "[[نسيئ (شهر قبطى)|نسيئ]]" }
if StringFormat == nil or StringFormat == "" then
if SiniksarFormat == nil or SiniksarFormat == "" then
return(finalDay .. SeparatorString .. finalMonth .. SeparatorString .. finalYear)
else
return(finalDay .. SeparatorString .. finalMonth)
end
else
if SiniksarFormat == nil or SiniksarFormat == "" then
return(finalDay .. SeparatorString .. finalMonthString[finalMonth] .. SeparatorString .. finalYear)
else
return(finalDay .. SeparatorString .. finalMonthString[finalMonth])
end
end
end
return p