کبیسه گیری در تاریخ جلالی (آموزش)
الگوریتم کبیسه گیری در تاریخ جلالی ( شمسی ) :
الف ) الگوریتم اول با دقت اندازه گیری بالاتر نسبت به الگوریتم دوم :
این الگوریتم توسط FSR@ نوشته شده است . برای استفاده از این الگوریتم می توانید به لینک روبرو مراجعه کنید که در سرویس پاسخ اندروید وجود دارد : لینک الگوریتم اول
ب ) الگوریتم دوم با دقت اندازه گیری پایین :
در پست قبلی ، الگوریتم تبدیل تاریخ میلادی به شمسی ( لینک ) را قرار دادم اما با استفاده از این Methodــی که در این پست قرار می دهم می توانیم سال کبیسه شمسی را نیز بدست آوریم .
مقدمه :
سال کبیسه در تاریخ جلالی ( شمسی ) از سال 1305 هر 4 سال یکبار اتقاق می افتد با این تفاوت که بعد از گذراندن هر 8 دوره ی 4 ساله ( 32 سال ) به جای 4 سال ، 5 سال محاسبه می شود . برای اینکه این گفتار قابل درک باشد به نمونه ی زیر توجه کنید :
1305 ، 1309 ، 1313 ، 1317 ، 1321 ، 1325 ، 1329 ، 1333 ، 1337 ، 1342 ، 1346 ، 1350 ، 1354 ، 1358 ، 1362 ، 1366 ، 1370 ، 1375 ، 1379 ، 1383 ، 1387 ، 1391 ، 1395
راهنما :
1- باتوجه به توضیحات بالا باید متغییری برای شروع سال کبیسه در نظر گرفته شود .
2- همانطور که گفتم ، بعد از گذراندن هر 8 دوره ی 4 ساله باید به جای 4 سال ، 5 سال در نظر گرفته شود . بنابراین باید متغییر ی برای شمارش دوره ها در نظر گرفته شود تا بعد از گذراندن 8 دوره به جای 4 سال ، 5 سال را محاسبه کند . شرط ادامه ی حلقه باید به اینصورت باشد که تا 4 سال قبل از خودش ادامه داشته باشد .
3- اگر مقدار بدست آمده با مقدار ورودی برابر بود سال کبیسه است در غیر اینصورت سال کبیسه نیست .
سورس کد آن به شرح زیر می باشد :
internal func DetectionOfTheSolarLeapYear ( solaryear:Int )-> Bool { /* a: defition of a variable for a period of eight year b: defition of a variable for leap year c: defition of a variable for variables user input year */ var a:Int = 0 var b:Int = 1305 let c:Int = solaryear for var i = 1305 ; i <= c-4 ; i+=4 { // add a period of leap yaer b+=4 // add one period for survey a period of eight years a+=1 if a%8 == 0{ b++ } } // if achieved year was Equal with user input year , So user input year is a leap year if c == b { return true }else{ return false } }
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .