In Memory Of
<<فقط جهت مطالعه>>
برای صِحَّت و سُقم فرمول اعمال شده در مطالب زیرین لازم است با موارد خیلی بیشتری مورد آزمون قرار گیرد در نتیجه فقط جهت مطالعه قرار داده شده !!! . اعمال آن در برنامه ها به اختیار مجری است ولی توصیه به استفاده نمی شود.برای درآورن اختلاف دو تاریخ یا اضافه کردن تعداد روزهایی به تاریخ مد نظر می بایست سال های کبیسه از تاریخ مبنا تا تاریخ درخواستی اعمال گردد تا تاریخ دقیقی بدست آید.
در ابتدا و پایان محاسبات در متن به اختلاف یک تا چند روز در سال های بزرگتر و فاصله دار طبق این روش پی خواهید برد.پس باماباشید
برای سالهای ۱۲۴۴ تا ۱۳۴۲ چنانچه باقیماندهٔ حاصل تقسیم سال مورد نظر بر عدد ۳۳، یکی از اعداد (۱، ۵، ۹، ۱۳، ۱۷، ۲۱، ۲۶ و ۳۰) باشد آن سال کبیسه خواهد بود. و برای سالهای اخیر (سالهای ۱۳۴۳ تا ۱۴۷۲)، بهجای ۲۱، باقیماندهٔ ۲۲ ملاک خواهد بود.
گاهشماری جلالی با حفظ سرآغاز و طول سال با تغییر مبدأ، اسامی و طول ماهها در قالب گاهشماری هجری شمسی برجی درآمده و باز با تغییراتی در طول ماهها ضمن تنوع اسامی آنها، عنوان تقویم هجری شمسی پیدا کرد.
این تقویم بر پایه سال اعتدالی خورشیدی برابر با ۳۶۵٫۲۴۲۱۹۸۷۸ روز است؛ که سال تقویمی آن ۳۶۵ و ۳۶۶روزه (کبیسه) میباشد.
بر اساس محاسبات مرکز تقویم مؤسسهٔ ژئوفیزیک دانشگاه تهران که مرجع رسمی تقویم ایران است، از سال ۱۲۰۶ تا ۱۴۹۸ هجری شمسی این سالها کبیسه بودهاند یا خواهند بود:[۱۵]
۱۲۱۰، ۱۲۱۴، ۱۲۱۸، ۱۲۲۲، ۱۲۲۶، ۱۲۳۰، ۱۲۳۴، ۱۲۳۸، ۱۲۴۳
(۳۳ساله)، ۱۲۴۷، ۱۲۵۱، ۱۲۵۵، ۱۲۵۹، ۱۲۶۳، ۱۲۶۷، ۱۲۷۱، ۱۲۷۶
(۳۳ساله)، ۱۲۸۰، ۱۲۸۴، ۱۲۸۸، ۱۲۹۲، ۱۲۹۶، ۱۳۰۰، ۱۳۰۴، ۱۳۰۹
(۳۳ساله)، ۱۳۱۳، ۱۳۱۷، ۱۳۲۱، ۱۳۲۵، ۱۳۲۹، ۱۳۳۳، ۱۳۳۷، ۱۳۴۲
(۳۳ساله)، ۱۳۴۶، ۱۳۵۰، ۱۳۵۴، ۱۳۵۸، ۱۳۶۲، ۱۳۶۶، ۱۳۷۰، ۱۳۷۵
(۳۳ساله)، ۱۳۷۹، ۱۳۸۳، ۱۳۸۷، ۱۳۹۱، ۱۳۹۵، ۱۳۹۹، ۱۴۰۳، ۱۴۰۸
(۳۳ساله)، ۱۴۱۲، ۱۴۱۶، ۱۴۲۰، ۱۴۲۴، ۱۴۲۸، ۱۴۳۲، ۱۴۳۶، ۱۴۴۱
(۳۳ساله)، ۱۴۴۵، ۱۴۴۹، ۱۴۵۳، ۱۴۵۷، ۱۴۶۱، ۱۴۶۵، ۱۴۶۹، ۱۴۷۴
(۳۳ساله)، ۱۴۷۸، ۱۴۸۲، ۱۴۸۶، ۱۴۹۰، ۱۴۹۴، و ۱۴۹۸.
طبق جدول عددی فوق اگر در باقیمانده تقسیم سال حسابی موردنظر بر عدد ۱۲۸ (میاندوره متوالی) یکی از اعداد جدول فوق باقی مانده باشند آن سال کبیسه خواهد بود. با این تفاوت که برای سالهای ۱ تا ۴۷۳ هجری خورشیدی حسابی اعداد اصلاح شده داخل (دوکمان) که یک شماره بیشتر نسبت به عدد همجوار آن است بهجای آن به عنوان باقی مانده ملاک خواهد بود (بعلت شکاف بین دو دوره بزرگ).
سرآغاز گاهشماری هجری خورشیدی روز جمعه «۱ فروردین سال ۱ هجری خورشیدی» (۲۹ شعبان ۱ سال پیش از هجرت) برابر با ۱۹ مارس ۶۲۲ میلادی قدیم (ژولینی) و ۲۲ مارس ۶۲۲ میلادی جدید (گرگوری) است.[۳] البته روز اول سال یک هجری خورشیدی (از ۱ فروردین تا ۲۴ شهریور) ۵ ماه و ۲۴ روز پیش از هجرت محمد (کمتر از یک سال) است.
در تقویم میلادی نو سالهایی که بر ۴ بخشپذیر باشند (باقیماندهٔ تقسیم آن سال بر ۴ برابر ۰ باشد) کبیسه هستند با این استثنا که از میان سالهایی که بر ۱۰۰ بخشپذیرند (سالهای انتهای سده)، تنها آنهایی که بر ۴۰۰ نیز بخشپذیرند کبیسه هستند.
Year | Year | Year | Year | Year |
---|---|---|---|---|
1600 | 1696 | 1796 | 1896 | 1996 |
1604 | 1704 | 1804 | 1904 | 2000 |
1608 | 1708 | 1808 | 1908 | 2004 |
1612 | 1712 | 1812 | 1912 | 2008 |
1616 | 1716 | 1816 | 1916 | 2012 |
1620 | 1720 | 1820 | 1920 | 2016 |
1624 | 1724 | 1824 | 1924 | 2020 |
1628 | 1728 | 1828 | 1928 | 2024 |
1632 | 1732 | 1832 | 1932 | 2028 |
1636 | 1736 | 1836 | 1936 | 2032 |
1640 | 1740 | 1840 | 1940 | 2036 |
1644 | 1744 | 1844 | 1944 | 2040 |
1648 | 1748 | 1848 | 1948 | 2044 |
1652 | 1752 | 1852 | 1952 | 2048 |
1656 | 1756 | 1856 | 1956 | 2052 |
1660 | 1760 | 1860 | 1960 | 2056 |
1664 | 1764 | 1864 | 1964 | 2060 |
1668 | 1768 | 1868 | 1968 | 2064 |
1672 | 1772 | 1872 | 1972 | 2068 |
1676 | 1776 | 1876 | 1976 | 2072 |
1680 | 1780 | 1880 | 1980 | 2076 |
1684 | 1784 | 1884 | 1984 | 2080 |
1688 | 1788 | 1888 | 1988 | 2084 |
1692 | 1792 | 1892 | 1992 | 2088 |
- | - | - | - | 2092 |
- | - | - | - | 2096 |
Note: 2100 will not be a leap year.
روش زیر برای تبدیل تاریخ میلادی به شمسی ثابت شده نیست ولی با کمک تابع DateDiff در اکسس می توان تا حدی به جواب نزدیک رسید مثال هایی در زیر برای درک بیشتر آورده ایم :
این مطلب برای اشخاصی است که بخواهند بدون اثبات علمی به نتیجه خیلی نزدیک برسند ( مشخص کردن تاریخ شمسی و میلادی مبنا و بدست آوردن معادل های آنها ) ... مثال های زیر خوانده شود اینجا کد نویسی آموزش داده نمی شود فقط روش برای افرادی که می توانند کد نویسی نُمایند !!! ... کد آماده در وب موجود است شما عزیزان دل می توانید Google Search کنید . توابع اکسس ( DateDiff و DateAdd ) هم به یاری شما خواهند آمد احتیاجی به کد نویسی اضافه نخواهید داشت.شاد و پیروز باشید.
تبدیل تاریخ میلادی به شمسی : ( اختلاف یک تا چند روز)
مبنای میلادی : 1/1/1922
مبنای شمسی :1300/10/11
روز هفته : یکشنبه
در مثال زیر اختلاف ۴ روز بدست آمد .
MM/DD/YYYY
1/1/2500
SELECT DateDiff("d", #01/01/1922#, #1/1/2500#)=211111
211111\365.25=577+1300=1877
211111-577×365.25=361.75~362
سال ۱۸۷۷ کبیسه نیست
362+11-30-30-29=284
یک عدد به عدد سال اضافه می شود
284-6×31-3×30=8
نتیجه باید 1878/10/12 باشد ولی روز را ۸ بدست آوردیم !!! اختلافی در حدود ۴ روز
پس متوجه شدید که عدد ۳۶۵.۲۵ که در یکسری سایت ها بیان شده قابل اطمینان نمی باشد.
MM/DD/YYYY
2/18/2102
SELECT DateDiff("d", #01/01/1922#, #2/18/2102#)=65792
65792\365.25=180+1300=1480
65792-180×365.25=47
47+11-30=28??? 29 is True
اختلاف یکروز
نتیجه : شنبه 1480/11/29
۶+۱=۷(۱ Sunday On 1922)
saturday=۷
MM/DD/YYYY
3/20/2999
SELECT DateDiff("d", #01/01/1922#, #3/20/2999#)=393445
393445\365.25=1077+1300=2377
393445-1077×365.25=70.75~71
71+11-30-30=22???? 30 is True
اختلاف ۸ روز !!!
نتیجه : 2377/12/30
-فرض کنید تاریخ 2000/02/28 باشد
نتیجه : دوشنبه 1378/12/09
SELECT DateDiff("d", #01/01/1922#, #02/28/2000#)=28547
28547\365.25=78
28547-78×365.25=57.5~58
58-(30-11)-30=9
۱+۱=۲
-فرض کنید ، تاریخ 2012/05/23 باشد :
نتیجه : چهارشنبه 1391/03/03
SELECT DateDiff("d", #01/01/1922#, #05/23/2012#)=33015
33015\365.25=90
33015-90×365.25=142.5~143
سال 90 کبیسه نیست
143-(30-11)-30-29=65
ورود به سال جدید >>> 91
65-31-31=3
۳+۱=۴(۱ sunday on 1922)
-فرض کنید تاریخ ، 1978/12/23 باشد :
نتیجه : شنبه 1357/10/2
SELECT DateDiff("d", #01/01/1922#, #12/23/1978#)=20810
20810\365.25=56
20810-56×365.25=356
سال 56 کبیسه نیست
356-(30-11)-30-29=278
ورود به سال جدید >>> 57
278-6×31-30-30-30=2
57×365.2523-11+2=20810.3811
۶+۱=۷(۱ sunday on 1922)
-فرض کنید تاریخ ، 1978/09/11 باشد :
Diff=20203
1+1=2(1 Sunday on 1922)
نتیجه : دوشنبه 1357/06/20
-فرض کنید تاریخ ، 2005/03/20 باشد :
نتیجه : یکشنبه 1383/12/30
SELECT DateDiff("d", #01/01/1922#, #03/20/2005#)=30394
30394\365.25=83
30394-83×365.25=78.25~79
سال 83 کبیسه است.اسفند ۳۰ روزه در نظر گرفته می شود.
79-(30-11)-30=30
۰+۱=۱(۱ sunday on 1922)
MM/DD/YYYY
10/03/2004
SELECT DateDiff("d", #01/01/1922#, #10/03/2004#);=30226
Never do following
--2004-1922=82
--82×365.25=29950.5
--29950.5+30+28+31+30+31+30+31+31
+30+3=30225.5~30226
30226\365.25=82
30226-82×365.25=275.5~276
سال 82 کبیسه نیست
276+11-30-30-29=198
یک عدد به عدد سال اضافه می شود : 83
198-31-31-31-31-31-31=12
نتیجه : یکشنبه ۱۳۸۳/۰۷/۱۲
۰+۱=۱(۱ sunday on 1922)
-فرض کنید تاریخ ، 2017/03/19 باشد :
نتیجه : یکشنبه 1395/12/29
Diff : 34776
---2017-1922=95
--95×365.25+31+28+19-1=34775.75~34776
34776\365.25=95
34776-95×365.25=77.25~78(Round-Up)
سال ۹۵ کبیسه است لذا ماه ۱۲ در محاسبات و کسر از Diff در جایی که نیاز است ۳۰ روزه اعمال می گردد.
78+11-30-30=29
۰+۱=۱(۱ sunday on 1922)
-فرض کنید تاریخ ، 2017/03/21 باشد :
نتیجه : سه شنبه 1396/01/01
SELECT DateDiff("d", #01/01/1922#, #03/21/2017#)=34778
34778\365.25=95
34778-95×365.25=79.25~80
سال ۹۵ کبیسه است.و ماه اسفند ۳۰ روزه در نظر گرفته می شود.
80-(30-11)-30-30=1
ورود به سال جدید 96
۲+۱=۳(۱ sunday on 1922)
SELECT DateDiff("d", #01/01/1922#, #03/20/2017#)=34777
34777\365.25=95
34777-95×365.25=78.25~79
سال ۹۵ کبیسه است.
79-(30-11)-30=30
۱+۱=۲(۱ Sunday on 1922)
نتیجه : دوشنبه 1395/12/30
SELECT DateDiff("d", #01/01/1922#, #03/17/2017#)=34774
34774\365.25=95
34774-95×365.25=75.25~76
سال ۹۵ کبیسه است.
76-(30-11)-30=27
نتیجه : جمعه 1395/12/27
۵+۱=۶(۱ sunday on 1922)
-فرض کنید تاریخ ، 2017/06/01 باشد :
Diff=34850
نتیجه : پنج شنبه 1396/3/11
۴+۱=۵(۱ Sunday On 1922)
-تاریخ مبنای میلادی : اول ژانویه 1922
-برگردان شمسی : 11 دی 1300
SELECT DateDiff("d", #01/01/1922#, #01/02/2000#)=28490
28490\365.25=78
28490-78×365.25=0.5~1
1300+78/10/11+1=1378/10/12
۰+۱=۱(۱ Sunday 1922)
-فرض کنید تاریخ ، 2013/04/01 باشد :
نتیجه : دوشنبه 1392/01/12
SELECT DateDiff("d", #01/01/1922#, #04/01/2013#)=33328
33328\365.25=91
33328-91×365.25=90.25~91
سال 91 کبیسه است در نتیجه ماه اسفند ۳۰ روزه در نظر گرفته می شود.
91-(30-11)-30-30=12
چون باقیمانده دارد پس یک عدد به سال اضافه می شود یعنی 1392
۱+۱=۲(۱ Sunday On 1922)
-فرض کنید تاریخ ، 2012/03/20 باشد :
نتیجه : سه شنبه 1391/01/01
SELECT DateDiff("d", #01/01/1922#, #03/20/2012#)=32951
32951\365.25=90
32951-90×365.25=78.5~79
سال 90 کبیسه نیست و ماه اسفند۲۹ روزه است.
79-(30-11)-30-29=1
یک عدد به عدد سال اضافه می کنیم
1391
۲+۱=۳(۱ Sunday On 1922)
-فرض کنید تاریخ ، 2023/06/23 باشد :
نتیجه : جمعه 1402/04/02
SELECT DateDiff("d", #01/01/1922#, #06/23/2023#)=37063
37063\365.25=101=1300+101=1401
37063-101×365.25=172.75~173
سال 1401 کبیسه نیست ( مبنا ۱۳۰۰/۱۰/۱۱ )
173-(30-11)-30-29=95
یک عدد بعدد سال اضافه میشود 1402
95-31-31-31=2
۵+۱=۶(۱ Sunday On 1922)
SELECT DateDiff("d", #01/01/1922#, #12/30/2016#)=34697
34697\365.25=94
34697-94×365.25=363.5~364
364-(30-11)-30-29=286
Year=Year+1=94+1=95
286-6×31-30-30-30=10
نتیجه : جمعه 1395/10/10
۵+۱=۶(۱ Sunday On 1922)
SELECT DateDiff("d", #01/01/1922#, #8/30/2020#)=36036
36036\365.25=98
36036-98×365.25=241.5~242
سال 98 کبیسه نیست.
242-(30-11)-30-29=164
Year=Year+1=98+1=99
164-5×31=9
نتیجه : یکشنبه 1399/06/09
۰+۱(۱ Sunday On 1922)
SELECT DateDiff("d", #01/01/1922#, #11/22/2014#)=33928
33928\365.25=92
33928-92×365.25=325
سال 92 کبیسه نیست.
325-(30-11)-30-29=247
Year=Year+1=92+1=93
247-6×31-30-30=1
نتیجه : شنبه 1393/09/01
۶+۱(۱ Sunday On 1922)
SELECT DateDiff("d", #01/01/1922#, #1/31/2024#)=37285
---2024-1922=102
---102×365.25+31-1=37285.5
37285\365.25=102(1300+102=1402)
37285-102×365.25=29.5~30
سال 1402 کبیسه نیست.
30-(30-11)=11
نتیجه : چهارشنبه 1402/11/11
۳+۱=۴(۱ Sunday On 1922)
برگردان شمسی به میلادی ( طبق تاریخ شمسی مبنا ) ... نیازمند آزمون و خطاست با چک کردن موارد بیشتر
1,402−1,300=102
102×365.25+30+11−11=37285.5
SELECT DateAdd("d",37285, #01/01/1922#);=1/31/2024
MM/DD/YYYY
01/01/1964
SELECT DateDiff("d", #01/01/1922#, #1/1/1964#)=15340
15340\365.25=41
15340-41×365.25=364.75~365
سال 41 کبیسه نیست.
365-30-30-29-6×31-3×30+11=11
Year=Year+1=1341+1=1342
Month:10,11,12,1...6,7..9,10
نتیجه : چهارشنبه 1342/10/11
۳+۱=۴(۱ Sunday On 1922)
MM/DD/YYYY
03/20/1964
SELECT DateDiff("d", #01/01/1922#, #3/20/1964#)=15419
15419\365.25=42
15419-42×365.25=78.5~79
42:Kabiseh
79+11-30-30=30
Month:10,11,12
نتیجه : جمعه 1342/12/30
۵+۱=۶(۱ Sunday On 1922)
SELECT DateDiff("d", #01/01/1922#, #2/24/1964#)=15394
15394\365.25=42
15394-42×365.25=53.5~54
سال 42 کبیسه است.
54+11-30-30=5
Month:10,11,12
نتیجه : دوشنبه 1342/12/05
۱+۱=۲(۱ Sunday On 1922)
SELECT DateDiff("d", #01/01/1922#, #7/20/1964#);=15541
15541\365.25=42
15541-42×365.25=200.5~201
سال 42 کبیسه است
201+11-30-30-30=122
یک عدد به عدد سال اضافه می شود.
42+1=43
122-31-31-31=29
1+1=2(1 sunday on 1/1/1922)
نتیجه دوشنبه 1343/04/29
MM/DD/YYYY
11/5/1996
-DateDiff :
1996-1922=74
74×365.25=27028.5~27029
27029+(31-1)+28+31+30+31+30+31+31+30+31+5=27337
Or
27029+31+28+31+30+31+30+31+31+30
+31+5-1=27337
-Convert to Jalali :
27337\365.25=74
27337-74×365.25=308.5~309
سال ۷۴ کبیسه نیست در نتیجه اسفند ماه ۲۹ روزه است
309+11-30-30-29=231
Month:10,11,12
231-6×31-30=15
Month:1....6,7,8(Aban)
Year=Year+1=74+1=75
1+2=3(1 sunday on 1/1/1922)
نتیجه : سه شنبه ۱۳۷۵/۰۸/۱۵
1/1/1940
SELECT DateDiff("d", #01/01/1922#, #1/1/1940#);=6574
6574\365.25=17
6574-17×365.25=364.75~365
سال ۱۳۱۷ کبیسه است در نتیجه ماه اسفند ۳۰ روزه در نظر گرفته می شود.
365+11-30-30-30=286
یک عدد به عدد سال اضافه می شود : 1318
286-6×31-3×30=10
نتیجه : دوشنبه ۱۳۱۸/۱۰/۱۰
۱+۱=۲(۱ Sunday On 1922)
اکثرا دنبال این هستیم ( حتی خود بنده ) که بتوانیم به راحتی و در کوتاهترین زمان کد نویسی ، معادل شمسی تاریخ میلادی روز را بدست آوریم محاسبات بالا کوتاهترین راه ممکن را به نمایش در آورده ( دقیق بودن مطلب فوق باید با بررسی تاریخ های بیشتر در سال کبیسه یا غیر کبیسه مورد آزمون قرار گیرد ) . معادله بالا برای کسانیکه میخواهند یاد بگیرند که چگونه تاریخ شمسی روز را در فرم اصلی نمایش دهند مفید خواهد بود.
روش کار :
۱-در نظر گرفتن یک تاریخ میلادی و شمسی بعنوان پایه و مبنا
1922/01/01 Miladi
1300/10/11 Jalali
۲-با تابع DateDiff در اکسس تعداد روزهای بین دو تاریخ میلادی مبنا ( 1922/01/01 ) و تاریخ میلادی مورد نظر که باید تبدیل شود را استخراج می کنیم.
۳-Diff یا اختلاف روزهای دو تاریخ میلادی گفته شده در مورد ۲ را بر 365.25 تقسیم و عدد صحیح آن را بعنوان سال مورد نظر بصورت موقت در متغیری ذخیره می کنیم.
۴-عدد صحیحِ حاصل از تفریق دو عدد Diff و مورد ۳ در 365.25 ، عددی است که باید به روز و ماه شمسی مبنا ( 10/11 ... یازده دی ) اضافه یا Add گردد.( عدد تا یک عدد بالاتررُند شود: اگر اعشار داشت اعشار حذف و یک رقم به عدد صحیح اضافه شود با توابع Fix و Abs و Int هم می توان کار را پیش برد)
۵-چنانچه سال فرضی یا موقت در مورد ۳ ، کبیسه بود اسفندماه برای کسر از عدد Diff ، سی روزه در نظر گرفته می شود.
بطور مثال اگر سال موقت ۹۵ بدست آمد و قرار شد 102 روز به تاریخ مبنا ( غیر از در نظر گرفتن سال ) اضافه شود داریم :
Mah 10 : (30-11)=19
Mah 11 : 30
Mah 12 : 30 ( 95>>Kabiseh)
19+30+30=79
عدد 102 از 79 بیشتر است لذا یک عدد به سال اضافه شده و سال واقعی 96 خواهد بود.
102-79=23
چون عدد مانده 23 روز و کمتر از یکماه است لذا در ماه اول قرار داریم و ماه و روز به ترتیب 1 و 23 خواهد شد.
۶-اختلاف اول ژانویه تا آخر اسفند برای سال کبیسه 79 و سال غیر کبیسه 78 روز است البته اول ژانویه ای هم داریم که معادل ۱۲ دیماه است پس این دوعدد گفته شده کاملا Reliable برای شما نیست بدلیل اینکه اول ژانویه می تواند در ۱۲ دی ماه بیافتد.
-به ساخت توابعی چون زیر نیاز است :
--تابع M_DAY برای مشخص نمودن تعداد روزهای ماه های شمسی و دارای دو آرگومان سال و ماه : سال برای مشخص نمودن کبیسه
Select Case M
Case 1 To 6:D=31:Case 7 To 11:D=30:Case 12:D=iif(Kabiseh(S)=True,30,29):End Select
--نوشتن تابع کبیسه : در بالا توضیح داده شده که برای سال های 1300 که مبنای ما است تا ... و 1343 تا 1472 چطور باید محاسبه گردد.
--عدد Diff تا یکرقم رُند شود.
--تابعی برای کسرروزهای ماه ها از عدد Diff بدست آمده در مورد ۲ :
۱-اضافه کردن عدد ۱۱ ( ماه ۱۰ : شمسی مبنا) به عدد Diff
2-لوپ تا زمانیکه Diff عدد مثبتی بدست آید ادامه پیدا خواهد کرد.
3- کسر تعداد روزهای هرماه ( از 10 ببعد ) از عدد Diff.
نکته :بعد ازانجام هر کسری باید یک عدد به M که معرف ماه است اضافه شود اگر M بزرگتر از ۱۲ شد M دوباره یک شود و به سال هم یک عدد اضافه شود
مثال :
M=10
S=92
Diff=325
325+11=336
---Loop :
336-(M:10)30=306
M=M+1=11
M>12 : False
306-(M:11)30=276
M=M+1=12
M>12 : False
276-(M:12)(S:92:Kabiseh=0)29=247
M=M+1=13
M>12 : True>>>M=1>>>S=S+1=93
247-(M:1)31=216
.
.
.
M=M+1=8
M>12 : False
31-(M:8)30=1
M=M+1
1-(M:9)30=-29>0 : False
---End Loop
MM/DD/YYYY
08/18/2020
SELECT DateDiff("d", #01/01/1922#, #8/18/2020#);=36024
Leap_years_in_the_Gregorian_calendar
--2020-1922=98
--98×365.25+31+28+31+30+31+30+31-1=36023.5~36024
36024\365.25=98
36024-98×365.25=229.5~230
سال ۹۸ کبیسه نیست بنابراین ماه اسفند ۲۹ روزه در نظر گرفته می شود.
230+11-30-30-29=152
در اینجا یکسال به سال 98 اضافه می شود
152-31-31-31-31=28
1+2=3(1 sunday on 1/1/1922)
نتیجه : سه شنبه ۱۳۹۹/۰۵/۲۸
MM/DD/YYY
12/30/2093
SELECT DateDiff("d", #01/01/1922#, #12/30/2093#);=62821
--following is not applicable on 1922 and the past!!!
62821\365.25=171+1300=1471
62821-171×365.25=363.25~364
سال ۱۴۷۱ کبیسه نیست و ماه اسفند ۲۹ روزه می شود.
364+11-30-30-29=286
یک عدد به عدد سال اضافه می شود : 1472
286-6×31-3×30=10
1+3=4(1 sunday on 1/1/1922)
نتیجه : چهارشنبه ۱۴۷۲/۱۰۱۰
vbSunday | 1 | Sunday |
vbMonday | 2 | Monday |
vbTuesday | 3 | Tuesday |
vbWednesday | 4 | Wednesday |
vbThursday | 5 | Thursday |
vbFriday | 6 | Friday |
vbSaturday | 7 | Saturday |
MM/DD/YYYY
02/19/1956
SELECT DateDiff("d", #01/01/1922#, #2/19/1956#);=12467
12467\365.25=34
12467-34×365.25=48.5~49
49+11-30=30
29 Is True
نتیجه : یکشنبه ??? 1334/11/30
۰+۱=۱(۱ Sunday On 1922)
تاریخ بالا 1334/11/29 اعلام شده که می بایست بصورت یک شمارشگرعدد 12467 به تاریخ مبنا اضافه شود با در نظر گرفتن سال های کبیسه
MM/DD/YYYY
12/27/2119
SELECT DateDiff("d", #01/01/1922#, #12/27/2119#);=72313
72313\365.25=197+1300=1497
72313-197×365.25=360.72~361
سال ۱۴۹۷ کبیسه نیست.
361+11-30-30-29=283
یک عدد به عدد سال اضافه می شود : 1498
283-6×31-3×30=7????>>>>6 is True
برای تاریخ بالا مشخص شد عدد 365.25 یکروز اختلاف را نشان میدهد در نتیجه بهتر است :
-با عددی که در ابتدا بیان شد کار را با تاریخ های بیشتری مورد آزمون قرار دهید . یا حاصل تفریق سال در عدد مورد نظر و Diff را در کبیسه RoundUp کنید یا اینکه یک عدد به عدد صحیح حاصل تفریق اضافه نمائید با حذف اعشارالبته.
این مطلب جهت نشان دادن یکروز اختلاف که قبلا گفته شد ارائه گردید
در صورتیکه مطلب فوق کمکی به شما نُمود لطفا در نظرسنجی شرکت کرده و یا کامنت بگذارید.
باسپاس فراوان از خواندن این مطلب
تیر ۱۴۰۲ : ( خزعلی ) معاون رییس جمهور در امور زنان و خانواده همچنین در دیدار با مردم روستای گرَهوِن افزود: ۲۰۰ میلیون تومان وام و ۲۰۰ میلیون تومان کالابرگ تهیه جهیزیه و ۲۰۰ میلیون وام اشتغال بخشی از تسهیلاتی است که به دهه شصتیها ارائه میشود.