PDA

View Full Version : آموزش: کار با تقویم شمسی بدون اشتباه هاتی که کلاس PersanCalendar دارد



rasol_afkham
پنج شنبه 01 اسفند 1392, 18:42 عصر
در لینک زیر کلاسی برای

linux
پنج شنبه 01 اسفند 1392, 21:04 عصر
در لینک زیر کلاسی برای کار با تقویم شمسی و راهنمای استفاده از این کلاس را قرار داده ام. در ویژوال استادیو کلاس PersianCalendar برای کار با تقویم شمسی ایجاد شده اما اشتباه های زیادی دارد. در فایل pdf که راهنمای همین کلاس است اشتباهات این کلاس را به ترتیب نوشته ام که می توانید مشاهده نمایید.
در اینترنت برنامه و کلاسهای زیادی برای کار با تقویم شمسی وجود دارد که تمام آنهایی که من از اینترنت دانلود کردم همه شان این اشتباهات را داشتند. بزرگترین اشتباهی که تمام این برنامه ها داشتند در محاسبه سال کبیسه است. اگر تقویم سیستم را چند سال جلو ببرید می بینید که تقویم شمسی اشتباه کار می کند و تاریخ را اشتباه نشان می دهد.
116926
لطفا نظر یا پیشنهادتون را در این پست قرار دهید
اشتباهی در کار نیست! سال کبیسه در تقویم شمسی یک کمی مثل تعیین عید فطر در ماه قمری هست. یعنی باید محاسبات نجومی انجام بشه و ... ولی دو سه مدل روش ریاضی ارایه شده که روشی که ویندوز داره تقریبا مورد قبول اکثریت هست برای اطلاعات بیشتر این مقاله (http://fa.wikipedia.org/wiki/%DA%AF%D8%A7%D9%87%D8%B4%D9%85%D8%A7%D8%B1%DB%8C_% D8%B1%D8%B3%D9%85%DB%8C_%D8%A7%DB%8C%D8%B1%D8%A7%D 9%86) را بخوانید. در ادامه عرض کنم که برای توابع AddDay و ... باز هم اشتباه نیست. تاریخ بصورت یک عدد ۶۴ بیتی در حافظه ذخیره میشه 32 بیست سمت راست روزهای گذشته از مبدا تاریخ را نشان می دهند و ۳۲ بیت سمت چپ ۱۰۰نانو ثانیه های گذشته از نیمه شب. این تابع از شما یک عدد گرفته و با یان عدد ذخیره کرده و در حافظه نگه می دارند. باز تابع isleap هم اشتباه نیست به همون دلیلی که گفتم شما چون کد نذاشتید معلوم نکردید که از کدام روش برای محاسبه سال کبیسه استفاده می کنید.
من پیشنهاد می کنم همین تقویم .نت را استفاده کنید بهتر هست.