با سلام
Amir531 عزيز كاملا حق با شماست.
سامان جان. برنامه شما ايراد داره و مشكلش در محاسبه سال كبيسه هست. و دليل اين كه در طول اين سه سال كه برنامه رو نوشتيد با مشكل مواجه نشده هم اينه كه اين سه سال كبيسه نبودن.
همونطور كه ميدونيد هر سال دقيقا 365 روز نيست و تقريبا هر سال چيزي در حدود 6 ساعت اضافه مياره و به همين دليل بعد از گذشت 4 سال به سال آخر 1 روز اضافه ميكنن و سال كبيسه بوجود مياد.
امسال ( سال 1383 ) سال كبيسه هست و به اين دليل تقويم دچار مشكل شده.
اگه شما تاريخ سيستم رو 1 سال عقب بياريد (1382) ميبينيد كه تقويم درست كار ميكنه. اما اگه 4 سال عقب يا جلو ببريد ( مثلا سالهاي 1379 و 1387 ) بازم با مشكل مواجه ميشه.
سامان خان. لطفا خودت برنامه رو تصحيح كن. چون من نخواستم بدون اجازه Source برنامه شما رو دستكاري كنم. فقط راه حل خودمو ميگم: براي اينكه تشخيص بديد سال كبيسه هست يا نه:
ميتونيد 3 سال از سال شمسي بدست اومده كسر كنيد و حاصل رو بر 4 تقسيم كنيد. اگه باقيمانده صفر بود سال كبيسه است. مثلا:
و اين نشون ميده كه سال 1383 سال كبيسه هست و همينطور:
پس سال 1382 كبيسه نيست. و بعد از اينكه تشخيص داديد سال كبيسه است بايد به تاريخ شمسي بدست اومده 1 روز اضافه كنيد.
اميدوارم سخت نگفته باشم و متوجه منظورم بشيد.