قالب وردپرس

آموزش تشخیص سال کبیسه شمسی در زبان جاوا -آموزش برنامه نویسی جاوا

آموزش تشخیص سال کبیسه شمسی در زبان جاوا -آموزش برنامه نویسی جاوا

در دومین آموزش برنامه نویسی جاوا قصد دارم که شما را با نحوه ی تشخیص سال کبیسه در تقویم هجری شمسی آشنا کنم . در قسمت قبل آموزش تشخیص سال کبیسه در تقویم میلادی را آموزش دادم که در برنامه تبدیل سال میلادی به شمسی کاربرد داشت ولی این برنامه در تبدیل سال شمسی به میلادی کاربرد دارد . با ما همراه باشید .

قبل از شروع آموزش قصد دارم که یه پیش زمینه ای در رابطه با کارمان به شما بدهم .

همان طور که می دانیم سال کبیسه در تقویم شمسی هر ۴ سال یک بار اتفاق می افتد و اسفند ماه سال کبیسه ۳۰ روزه می باشد ولی شاید این را ندانید که در یک دوره ی خاص زمانی سال کبیسه به جای ۴ سال ، ۵ سال یک بار اتفاق می افند به مثال زیر توجه کنید ، سال های کبیسه را نمایش می دهد .

۱۳۰۵   ،  ۱۳۰۹   ،  ۱۳۱۳   ،  ۱۳۱۷   ،  ۱۳۲۱   ،  ۱۳۲۵   ،  ۱۳۲۹   ،  ۱۳۳۳   ،  ۱۳۳۷

             ۱۳۴۲   ،  ۱۳۴۶   ،  ۱۳۵۰   ،  ۱۳۵۴   ،  ۱۳۵۸   ،  ۱۳۶۲   ،  ۱۳۶۶   ،  ۱۳۷۰

             ۱۳۷۵   ،  ۱۳۷۹   ،  ۱۳۸۳   ،  ۱۳۸۷   ،  ۱۳۹۱   ،  ۱۳۹۵   ،  ۱۳۹۹   ،  ۱۴۰۳

همان طور که در مثال بالا می بینید تقریباً هر ۴ سال یک بار  کبیسه  رخ می دهد ولی بعد در هر ۸ دوره ( یعنی ۳۳ سال یک بار ) ، کبیسه هر ۵ سال یک بار اتفاق می افتد .

الگوریتم تشخیص سال کبیسه

از سال ۱۳۰۹ شروع می کنیم ۴ سال ۴سال اضافه می کنیم و بعد از هر ۸ دوره ۵ سال اضافه می کنیم . این کار تا آنجا ادامه می دهیم که عددمان از از عدد سال ورودی کوچکتر مساوی باشد . در آخر اگر عدد به دست آمده ی ما با سال ورودی یکسان بود ، ان سال کبیسه است در غیر اینصورت کبیسه نمی باشد . تمام

 

سورس تشخیص سال کبیسه شمسی به زبان جاوا

در پایان امیدوارم که این آموزش مورد پسند شما واقع شده باشد .

دیدگاه بگذارید

3 نظر روشن "آموزش تشخیص سال کبیسه شمسی در زبان جاوا -آموزش برنامه نویسی جاوا"

اطلاع از
avatar
مرتب سازی بر اساس:   جدیدترین | قدیمی ترین | بیشترین تعداد رأی
امیرحسین کریمی
میهمان

تابع خوبیه و دقیق هست. اما بنظرتون برای محاسبه هر بال سال کبیسه این همه محاسبات و حلقه لازمه؟
مثلا ما میخوایم یک لیست بلند بالایی از محصولات و تاریخ ورود به انبار و فروش رو به شمسی نشون بدیم. پس این تابع برای هر محصول باید ۲ بار فراخوانی بشه. و اگه تعداد محصول زیاد باشه این محاسبات بطور تساعدی بالا میره.
به نظرم بهتره این کد رو یکم بهینه ترش کنیم. چک کردن چند تا شرط خیلی سرعتش بالاتر از یه حلقه با این رنج هست.

ابوالفضل
میهمان

نه دوست عزیز. اینطوری که فکر میکنی هم نیست.
خوب شما برای ۲۰۰ سال را محاسبه کن و بصورت یک تابع قرار بده و خروجی بگیر. آخر تابع هم اگر اون سال نبود محاسبه را انجام بده 🙂

rose
میهمان

با سلام
این کد رو چجوری با c++ میشه نوشت
مرسی از سایت خوبتون

wpDiscuz
قالب وردپرس