<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ar">
	<id>https://3rabica.org/index.php?action=history&amp;feed=atom&amp;title=%D9%88%D8%AD%D8%AF%D8%A9%3ADateFunctions</id>
	<title>وحدة:DateFunctions - تاريخ المراجعة</title>
	<link rel="self" type="application/atom+xml" href="https://3rabica.org/index.php?action=history&amp;feed=atom&amp;title=%D9%88%D8%AD%D8%AF%D8%A9%3ADateFunctions"/>
	<link rel="alternate" type="text/html" href="https://3rabica.org/index.php?title=%D9%88%D8%AD%D8%AF%D8%A9:DateFunctions&amp;action=history"/>
	<updated>2026-06-05T20:08:37Z</updated>
	<subtitle>تاريخ التعديل لهذه الصفحة في الويكي</subtitle>
	<generator>MediaWiki 1.43.7</generator>
	<entry>
		<id>https://3rabica.org/index.php?title=%D9%88%D8%AD%D8%AF%D8%A9:DateFunctions&amp;diff=1007&amp;oldid=prev</id>
		<title>عبد العزيز في 00:46، 6 سبتمبر 2016</title>
		<link rel="alternate" type="text/html" href="https://3rabica.org/index.php?title=%D9%88%D8%AD%D8%AF%D8%A9:DateFunctions&amp;diff=1007&amp;oldid=prev"/>
		<updated>2016-09-06T00:46:48Z</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;p = {}&lt;br /&gt;
&lt;br /&gt;
-- RiciLake comments:&lt;br /&gt;
-- It would be better to create the days_in_month table outside the&lt;br /&gt;
-- function, like this (using % so it only works in Lua 5.1)&lt;br /&gt;
do&lt;br /&gt;
  local days_in_month = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }&lt;br /&gt;
&lt;br /&gt;
  local function is_leap_year(year)&lt;br /&gt;
    return year % 4 == 0 and (year % 100 ~= 0 or year % 400 == 0)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  function get_days_in_month(month, year)&lt;br /&gt;
    if month == 2 and is_leap_year(year) then&lt;br /&gt;
      return 29&lt;br /&gt;
    else&lt;br /&gt;
      return days_in_month[month]&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
-- الأشهر الميلادية&lt;br /&gt;
mhnas = { {[&amp;#039;name&amp;#039;] = &amp;#039;يناير&amp;#039;, [&amp;#039;gen&amp;#039;] = &amp;#039;يناير&amp;#039;, [&amp;#039;d&amp;#039;] = 31}, &lt;br /&gt;
    {[&amp;#039;name&amp;#039;] = &amp;#039;فبراير&amp;#039;, [&amp;#039;gen&amp;#039;] = &amp;#039;فبراير&amp;#039;, [&amp;#039;d&amp;#039;] = 29},&lt;br /&gt;
    {[&amp;#039;name&amp;#039;] = &amp;#039;مارس&amp;#039;, [&amp;#039;gen&amp;#039;] = &amp;#039;مارس&amp;#039;, [&amp;#039;d&amp;#039;] = 31},&lt;br /&gt;
    {[&amp;#039;name&amp;#039;] = &amp;#039;أبريل&amp;#039;, [&amp;#039;gen&amp;#039;] = &amp;#039;أبريل&amp;#039;, [&amp;#039;d&amp;#039;] = 30},&lt;br /&gt;
    {[&amp;#039;name&amp;#039;] = &amp;#039;مايو&amp;#039;, [&amp;#039;gen&amp;#039;] = &amp;#039;مايو&amp;#039;, [&amp;#039;d&amp;#039;] = 31},&lt;br /&gt;
    {[&amp;#039;name&amp;#039;] = &amp;#039;يونيو&amp;#039;, [&amp;#039;gen&amp;#039;] = &amp;#039;يونيو&amp;#039;, [&amp;#039;d&amp;#039;] = 30},&lt;br /&gt;
    {[&amp;#039;name&amp;#039;] = &amp;#039;يوليو&amp;#039;, [&amp;#039;gen&amp;#039;] = &amp;#039;يوليو&amp;#039;, [&amp;#039;d&amp;#039;] = 31},&lt;br /&gt;
    {[&amp;#039;name&amp;#039;] = &amp;#039;أغسطس&amp;#039;, [&amp;#039;gen&amp;#039;] = &amp;#039;أغسطس&amp;#039;, [&amp;#039;d&amp;#039;] = 31},&lt;br /&gt;
    {[&amp;#039;name&amp;#039;] = &amp;#039;سبتمبر&amp;#039;, [&amp;#039;gen&amp;#039;] = &amp;#039;سبتمبر&amp;#039;, [&amp;#039;d&amp;#039;] = 30},&lt;br /&gt;
    {[&amp;#039;name&amp;#039;] = &amp;#039;أكتوبر&amp;#039;, [&amp;#039;gen&amp;#039;] = &amp;#039;أكتوبر&amp;#039;, [&amp;#039;d&amp;#039;] = 31},&lt;br /&gt;
    {[&amp;#039;name&amp;#039;] = &amp;#039;نوفمبر&amp;#039;, [&amp;#039;gen&amp;#039;] = &amp;#039;نوفمبر&amp;#039;, [&amp;#039;d&amp;#039;] = 30},&lt;br /&gt;
    {[&amp;#039;name&amp;#039;] = &amp;#039;ديسمبر&amp;#039;, [&amp;#039;gen&amp;#039;] = &amp;#039;ديسمبر&amp;#039;, [&amp;#039;d&amp;#039;] = 31},&lt;br /&gt;
}&lt;br /&gt;
-- السبعة الأسبوع الشبعة&lt;br /&gt;
hmera = { &amp;#039;الإثنين&amp;#039;, &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;
Hijri = { {[&amp;#039;name&amp;#039;] = &amp;#039;محرم&amp;#039;, [&amp;#039;gen&amp;#039;] = &amp;#039;محرم&amp;#039;, [&amp;#039;d&amp;#039;] = 30}, &lt;br /&gt;
    {[&amp;#039;name&amp;#039;] = &amp;#039;صفر&amp;#039;, [&amp;#039;gen&amp;#039;] = &amp;#039;صفر&amp;#039;, [&amp;#039;d&amp;#039;] = 29},&lt;br /&gt;
    {[&amp;#039;name&amp;#039;] = &amp;#039;ربيع الأول&amp;#039;, [&amp;#039;gen&amp;#039;] = &amp;#039;ربيع الأول&amp;#039;, [&amp;#039;d&amp;#039;] = 30},&lt;br /&gt;
    {[&amp;#039;name&amp;#039;] = &amp;#039;ربيع الثاني&amp;#039;, [&amp;#039;gen&amp;#039;] = &amp;#039;ربيع الثاني&amp;#039;, [&amp;#039;d&amp;#039;] = 29},&lt;br /&gt;
    {[&amp;#039;name&amp;#039;] = &amp;#039;جمادى الأولى&amp;#039;, [&amp;#039;gen&amp;#039;] = &amp;#039;جمادى الأولى&amp;#039;, [&amp;#039;d&amp;#039;] = 30},&lt;br /&gt;
    {[&amp;#039;name&amp;#039;] = &amp;#039;جمادى الآخرة&amp;#039;, [&amp;#039;gen&amp;#039;] = &amp;#039;جمادى الآخرة&amp;#039;, [&amp;#039;d&amp;#039;] = 29},&lt;br /&gt;
    {[&amp;#039;name&amp;#039;] = &amp;#039;رجب&amp;#039;, [&amp;#039;gen&amp;#039;] = &amp;#039;رجب&amp;#039;, [&amp;#039;d&amp;#039;] = 30},&lt;br /&gt;
    {[&amp;#039;name&amp;#039;] = &amp;#039;شعبان&amp;#039;, [&amp;#039;gen&amp;#039;] = &amp;#039;شعبان&amp;#039;, [&amp;#039;d&amp;#039;] = 29},&lt;br /&gt;
    {[&amp;#039;name&amp;#039;] = &amp;#039;رمضان&amp;#039;, [&amp;#039;gen&amp;#039;] = &amp;#039;رمضان&amp;#039;, [&amp;#039;d&amp;#039;] = 30},&lt;br /&gt;
    {[&amp;#039;name&amp;#039;] = &amp;#039;شوال&amp;#039;, [&amp;#039;gen&amp;#039;] = &amp;#039;شوال&amp;#039;, [&amp;#039;d&amp;#039;] = 29},&lt;br /&gt;
    {[&amp;#039;name&amp;#039;] = &amp;#039;ذو القعدة&amp;#039;, [&amp;#039;gen&amp;#039;] = &amp;#039;ذو القعدة&amp;#039;, [&amp;#039;d&amp;#039;] = 30},&lt;br /&gt;
    {[&amp;#039;name&amp;#039;] = &amp;#039;ذو الحجة&amp;#039;, [&amp;#039;gen&amp;#039;] = &amp;#039;ذو الحجة&amp;#039;, [&amp;#039;d&amp;#039;] = 29-30},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- returns the day of week integer and the name of the week&lt;br /&gt;
-- Compatible with Lua 5.0 and 5.1.&lt;br /&gt;
-- from sam_lie &lt;br /&gt;
function get_day_of_week(dd, mm, yy) &lt;br /&gt;
--  local days = { &amp;quot;Sun&amp;quot;, &amp;quot;Mon&amp;quot;, &amp;quot;Tue&amp;quot;, &amp;quot;Wed&amp;quot;, &amp;quot;Thu&amp;quot;, &amp;quot;Fri&amp;quot;, &amp;quot;Sat&amp;quot; }&lt;br /&gt;
--  local days = { 7, 2, 3, 4, 5, 6, 6 }&lt;br /&gt;
    &lt;br /&gt;
    local mmx = mm&lt;br /&gt;
    &lt;br /&gt;
    if (mm == 1) then  mmx = 13; yy = yy-1  end&lt;br /&gt;
    if (mm == 2) then  mmx = 14; yy = yy-1  end&lt;br /&gt;
&lt;br /&gt;
    local val8 = dd + (mmx*2) +  math.floor(((mmx+1)*3)/5)   + yy + math.floor(yy/4)  - math.floor(yy/100)  + math.floor(yy/400) + 2&lt;br /&gt;
    local val9 = math.floor(val8/7)&lt;br /&gt;
    local dw = val8-(val9*7) &lt;br /&gt;
&lt;br /&gt;
    if (dw &amp;lt; 2 ) then&lt;br /&gt;
        dw = dw + 6&lt;br /&gt;
    else&lt;br /&gt;
        dw =dw - 1&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
--  return dw, days[dw]&lt;br /&gt;
--  return days[dw]&lt;br /&gt;
    return dw &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getfirstDayNum(frame)&lt;br /&gt;
    local args = frame.args&lt;br /&gt;
    local year = 0&lt;br /&gt;
    local month = 0&lt;br /&gt;
    local osdate = os.date(&amp;#039;*t&amp;#039;)&lt;br /&gt;
    if args[&amp;#039;سنة&amp;#039;] == nil then&lt;br /&gt;
        year = osdate.year&lt;br /&gt;
    else&lt;br /&gt;
        year = args[&amp;#039;سنة&amp;#039;]&lt;br /&gt;
    end&lt;br /&gt;
    if args[&amp;#039;شهر&amp;#039;] == nil then&lt;br /&gt;
        month = osdate.month&lt;br /&gt;
    else&lt;br /&gt;
        local month = args[&amp;#039;شهر&amp;#039;]&lt;br /&gt;
    end&lt;br /&gt;
    return get_day_of_week(1, month, year)    &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getMonthDays(frame)&lt;br /&gt;
    local args = frame.args&lt;br /&gt;
    local year = 0&lt;br /&gt;
    local month = 0&lt;br /&gt;
    local osdate = os.date(&amp;#039;*t&amp;#039;)&lt;br /&gt;
    if args[&amp;#039;سنة&amp;#039;] == nil then&lt;br /&gt;
        year = osdate.year&lt;br /&gt;
    else&lt;br /&gt;
        year = args[&amp;#039;سنة&amp;#039;]&lt;br /&gt;
    end&lt;br /&gt;
    if args[&amp;#039;شهر&amp;#039;] == nil then&lt;br /&gt;
        month = osdate.month&lt;br /&gt;
    else&lt;br /&gt;
        local month = args[&amp;#039;شهر&amp;#039;]&lt;br /&gt;
    end&lt;br /&gt;
    return get_days_in_month(month, year)    &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- for debuging with debug console&lt;br /&gt;
function p.getdaynumtest()&lt;br /&gt;
    --args1 = 2013&lt;br /&gt;
    --args2 = 1&lt;br /&gt;
    local b = os.date(&amp;#039;*t&amp;#039;)--,os.time{year=yr,month=mnth+1,day=0})&lt;br /&gt;
    --return b.year, b.month&lt;br /&gt;
return &amp;#039;اليوم الأول من شهر:&amp;#039; .. mhnas[b.month].gen .. &amp;#039; سنة&amp;#039; .. b.year .. &amp;#039; يوم&amp;#039; .. hmera[get_day_of_week(1, b.month, b.year) ]&lt;br /&gt;
end    &lt;br /&gt;
&lt;br /&gt;
-- يعرض اليوم والتاريخ، مثل الإثنين, 5 سبتمبر 2016&lt;br /&gt;
-- يستخدم {{#invoke:DateFunctions|اليوم والتاريخ}}&lt;br /&gt;
p[&amp;#039;اليوم والتاريخ&amp;#039;] = function ()&lt;br /&gt;
    local osdate = os.date(&amp;#039;*t&amp;#039;)&lt;br /&gt;
    return (hmera[osdate.wday-1] or hmera[7]) .. &amp;#039;, &amp;#039; ..  osdate.day .. &amp;#039; &amp;#039; .. mhnas[osdate.month][&amp;#039;gen&amp;#039;] .. &amp;#039; &amp;#039; .. osdate.year&lt;br /&gt;
end&lt;br /&gt;
-- يعرض التاريخ، مثل 5 سبتمبر 2016&lt;br /&gt;
-- يستخدم {{#invoke:DateFunctions|التاريخ}}&lt;br /&gt;
p[&amp;#039;التاريخ&amp;#039;] = function () local osdate = os.date(&amp;#039;*t&amp;#039;) return osdate.day .. &amp;#039; &amp;#039; .. mhnas[osdate.month][&amp;#039;gen&amp;#039;] .. &amp;#039; &amp;#039; .. osdate.year end&lt;br /&gt;
-- يعرض اليوم إسما، مثل الأحد&lt;br /&gt;
-- يستخدم {{#invoke:DateFunctions|اليوم}}&lt;br /&gt;
p[&amp;#039;اليوم&amp;#039;] = function () local osdate = os.date(&amp;#039;*t&amp;#039;) return (hmera[osdate.wday-1] or hmera[7]) end&lt;br /&gt;
-- يعرض التاريخ، مثل اليوم الأحد الموافق 5 سبتمبر 2016&lt;br /&gt;
-- يستخدم {{#invoke:DateFunctions|الموافق}}&lt;br /&gt;
p[&amp;#039;الموافق&amp;#039;] = function ()&lt;br /&gt;
    local osdate = os.date(&amp;#039;*t&amp;#039;)&lt;br /&gt;
    return &amp;#039;اليوم هو&amp;#039; .. (hmera[osdate.wday-1] or hmera[7]) .. &amp;#039;, &amp;#039; .. &amp;#039;الموافق&amp;#039; ..  osdate.day .. &amp;#039; &amp;#039; .. mhnas[osdate.month][&amp;#039;gen&amp;#039;] .. &amp;#039; &amp;#039; .. osdate.year&lt;br /&gt;
end&lt;br /&gt;
-- يعرض تاريخ اليوم، مثل 5&lt;br /&gt;
-- يستخدم {{#invoke:DateFunctions|تاريخ اليوم}}&lt;br /&gt;
p[&amp;#039;تاريخ اليوم&amp;#039;] = function ()&lt;br /&gt;
    local osdate = os.date(&amp;#039;*t&amp;#039;)&lt;br /&gt;
    return osdate.day end&lt;br /&gt;
   -- يعرض الشهر الحالي، مثل أكتوبر&lt;br /&gt;
-- يستخدم {{#invoke:DateFunctions|الشهر الحالي}}&lt;br /&gt;
   p[&amp;#039;الشهر الحالي&amp;#039;] = function ()&lt;br /&gt;
    local osdate = os.date(&amp;#039;*t&amp;#039;)&lt;br /&gt;
    return mhnas[osdate.month][&amp;#039;gen&amp;#039;] end&lt;br /&gt;
    -- يعرض السنة الحالية، مثل 2016&lt;br /&gt;
-- يستخدم {{#invoke:DateFunctions|السنة الحالية}}&lt;br /&gt;
    p[&amp;#039;السنة الحالية&amp;#039;] = function ()&lt;br /&gt;
    local osdate = os.date(&amp;#039;*t&amp;#039;)&lt;br /&gt;
    return osdate.year end&lt;br /&gt;
    --  يعرض الشهر الهجري، مثل محرم أو رمضان&lt;br /&gt;
-- يستخدم {{#invoke:DateFunctions|الشهر الهجري}}&lt;br /&gt;
p[&amp;#039;الشهر الهجري&amp;#039;] = function ()&lt;br /&gt;
    local osdate = os.date(&amp;#039;*t&amp;#039;)&lt;br /&gt;
    return Hijri[osdate.month][&amp;#039;gen&amp;#039;] &lt;br /&gt;
end&lt;br /&gt;
-- يعرض السنة الهجرية الحالية حسب المعادلة: السنة الهجرية=السنة الميلادية-622*33/32&lt;br /&gt;
-- يستخدم {{#invoke:DateFunctions|السنة الهجرية}}&lt;br /&gt;
    p[&amp;#039;السنة الهجرية&amp;#039;] = function ()&lt;br /&gt;
    local osdate = os.date(&amp;#039;*t&amp;#039;)&lt;br /&gt;
	h= (osdate.year - 622) * 33 / 32&lt;br /&gt;
    return math.floor(h)	&lt;br /&gt;
	end&lt;br /&gt;
	-- يعرض السنة الهجرية الحالية حسب المعادلة: التاريخ الهجري=(1993-622)\0,97&lt;br /&gt;
-- يستخدم {{#invoke:DateFunctions|السنة الهجرية2}}&lt;br /&gt;
    p[&amp;#039;السنة الهجرية2&amp;#039;] = function ()&lt;br /&gt;
    local osdate = os.date(&amp;#039;*t&amp;#039;)&lt;br /&gt;
	h= (osdate.year - 622) / 0.97&lt;br /&gt;
    return math.floor(h + 0.5)	&lt;br /&gt;
	end&lt;br /&gt;
--  يعرض الوقت&lt;br /&gt;
-- يستخدم {{#invoke:DateFunctions|الوقت}}&lt;br /&gt;
p[&amp;#039;الوقت&amp;#039;] = function ()&lt;br /&gt;
    local ostime = os.time(&amp;#039;*t&amp;#039;)&lt;br /&gt;
    return os.time&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>عبد العزيز</name></author>
	</entry>
</feed>