کلینیک فوق تخصصی اکسس ( کاربرد vba در اکسس )

کلینیک فوق تخصصی اکسس ( کاربرد vba در اکسس )

به اشتراک گذاری اطلاعات کسب شده در اکسس از سایت آفیس و سایت های تخصصی خارجی
کلینیک فوق تخصصی اکسس ( کاربرد vba در اکسس )

کلینیک فوق تخصصی اکسس ( کاربرد vba در اکسس )

به اشتراک گذاری اطلاعات کسب شده در اکسس از سایت آفیس و سایت های تخصصی خارجی

روش کبیسه گیری

 https://fa.m.wikipedia.org/wiki/گاه‌شماری_رسمی_ایران 


از قائده ی خاصی پیروی نمیکند  لیست زیر طبق جدول لینک بالا از سال ۴ تا سال ۱۴۷۳ می باشد ، بعد از هر عدد یک کبیسه ی پنج ساله است و بعد از آن تا شروع عدد بعدی هر چهار واحدیک کبیسه ی چهارساله است.


اعداد زیر طبق جدول گاه شماری_رسمی_ایران  ( لینک بالا  ) استخراج شده .


ARRAY(4,37,66,99,132,165,198,231,264,297,326,359,392,425,458

491,524,553,586,619,656,685,718,751,784,817,850,883,916,

949,978,1011,1044,1077,1110,1143,1176,1209,1238,1275,

,1308,1341,1370,1403,1436,1473,1502,1535,1568,1601

1634,1667,1696,1733




اعداد بالا را در تابع Array  قرار میدهیم  بدون دابل کوتیشن  فرضا اگر بخواهیم کبیسه بودن سال ۱۳۸۰ را بسنجیم 

۱-عددی  در آرایه  را که از عدد ۱۳۸۰ کوچکتر باشد را پیدا میکنیم که در اینجا ۱۳۷۰ را نمایش خواهد داد

۲-همانطور که گفته شد بعد از اعداد یاد شده عدد بعدی باضافه ی ۵ کبیسه ی ۵ ساله میشود و اعداد بعدی آن هر چهار واحد اضافه کبیسه ی چهار ساله میشود . پس بین  عدد ۱۳۷۰  تا ۱۳۸۰ لوپ میزنیم  یا در همان دو لوپ ایجاد شده در لوپ اول یک C بعنوان کانتر میزنیم و میگوئیم  C=C+1


لوپ اول هم  در آرایه یکی یکی اعداد را میگیرد و بازه ی لوپ دوم عدد آرایه در لوپ اول و عدد  بعد از آن خواهد شد .


قسمتی ازکد بقیه توسط الگوریتم باید انجام شود : 


DO 

.

DO

DEBUG.PRINT J

IF J>A+5 THEN J=J+4  ELSE J=J+5

 (LOOP UNTIL J>=ARR(I+1 ؟؟؟ >

X=J

I=I+1

(LOOP UNTIL I=Ubound(J


 لوپ  دوم می تواند تا زمانی  ادامه یابد که سال  داخل تابع کوچکتر مساوی عدد داخل آرایه باشد. ( فرضا میخواهید چک کنید چند سال کبیسه را تا قبل از سال ۱۳۷۰ پشت سر گذاشته اید : برای اختلاف تاریخ شمسی حتما باید تعداد کبیسه تا  یکسال قبل محاسبه شود ولی برای توتال روزهای گذشته از سال کنونی خود سال باید مشخص شود که کبیسه هست یا خیر .... عددی در آرایه  که کوچکتر از ۱۳۷۰ باشد را میگیریم و طبق آنچه  گفته شد ۵ سال به عدد آرایه اضافه می کنیم که کبیسه ی ۵ ساله است و کبیسه های بعدی چهار تا چهارتا اضافه میشود)




برای لیست کردن سال های کبیسه طبق آرایه ی بالا اگر Ubound و Lbound جواب دهد میتوان سال های کبیسه را لیست کرد چه در اکسل چه در اکسس طوری عمل میشود که عدد اول را باضافه ی ۵ میکند و بقیه را بعلاوه ی چهار تا به   عدد بعدی در آرایه برسد  اگر عدد آخر با pointer ( یا عدد بعدی آرایه )  برابر نبود عددها را چاپ کند ، فرضا 

4+5=9  و بعد چهار تا چهارتا جلو میرود ۹+۴ ، ۱۳+۴ ، ۱۷+۴ ، ۲۱+۴ 

۲۵+۴ ، ۲۹+۴ ، ۳۳ +۴  که ۳۷ میشود 


بدست آوردن دقیق کبیسه برای کسانیکه میخواهند تقویم دقیقی داشته باشند یا محاسبه ی دقیق از سال یک تا ۱۵۰۰ پیروی از این سبک الزامیست وگرنه اختلاف یک یا دو روز حداکثر حتمی است.                        


              مرجع: گاه شماری_رسمی_ایران 



سال‌های کبیسه رسمی یک قرن اخیر با توجه به دوره‌ها:
(دورهٔ ۳۳ساله): ۱۲۸۰ - ۱۲۸۴ - ۱۲۸۸ - ۱۲۹۲ - ۱۲۹۶ - ۱۳۰۰ - ۱۳۰۴ - ۱۳۰۸ 
(دورهٔ ۳۳ساله): ۱۳۱۳ - ۱۳۱۷ - ۱۳۲۱ - ۱۳۲۵ - ۱۳۲۹ - ۱۳۳۳ - ۱۳۳۷ - ۱۳۴۱ 
(دورهٔ ۲۹ساله): ۱۳۴۶ - ۱۳۵۰ - ۱۳۵۴ - ۱۳۵۸ - ۱۳۶۲ - ۱۳۶۶ - ۱۳۷۰ 
(دورهٔ ۳۳ساله): ۱۳۷۵ - ۱۳۷۹ - ۱۳۸۳ - ۱۳۸۷ - ۱۳۹۱ - ۱۳۹۵ - ۱۳۹۹ - ۱۴۰۳.


جدول زیر از وب گرفته شده و باید  طبق جدول داخل لینک طبق ردیف هاچک کنید .

نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد