PDA

View Full Version : حرفه ای: نحوه تشخیص سال کبیسه هجری شمسی



صادق صدقی
شنبه 29 اسفند 1388, 03:25 صبح
سلام

دوستان عزیز
می خواستم ببینم چه طوری میشه تشخیص داد که سال کبیسه هست یا نه؟؟

اون طوری که من خوندم تویه کتاب ها هر 4سال شمسی که بگذره سال بعد کبیسه هست


!!!!!!!!!!!!!!!!

یعنی هر سال 365 روز 6 ساعته

اگر هر 4 سال بگذره 24=6*4 ساعت برابر با یک روز!!!!!!!!!!!!!! واون ماه اسفند میشه 30 روزه یعنی 366 روز!!!!!!


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

آیا روشی وجود داره یا باید خودمون یه کاریش کنیم

Mohandes2009
شنبه 29 اسفند 1388, 05:31 صبح
http://barnamenevis.biz/forum/showthread.php?t=205882

SMRAH1
شنبه 29 اسفند 1388, 11:37 صبح
سلام
خوده PersianCalendar تابع IsLeapDay , IsLeapMonth و IsLeapYear رو داره!
موفق باشید

ali_autumnal
شنبه 29 اسفند 1388, 15:48 عصر
if(year % 4 ==3) messagebox.show("سال کبیسه است");

FastCode
شنبه 29 اسفند 1388, 18:45 عصر
internal static bool IsLeapYear(int y)
{
int[] matches = { 1, 5, 9, 13, 17, 22, 26, 30 };
int modulus = y - ((y / 33) * 33);
bool K = false;
for (int n = 0; n != 8; n++) if (matches[n] == modulus) K = true;
return K;
}



int y = 1389;
bool L = IsLeapYear(y);
if (L)
{
}
else
{
}

FastCode
یک شنبه 01 فروردین 1389, 01:05 صبح
internal static bool IsLeapYear(int y)
{
int[] matches = { 1, 5, 9, 13, 17, 22, 26, 30 };
int modulus = y - ((y / 33) * 33);
bool K = false;
for (int n = 0; n != 8; n++) if (matches[n] == modulus) K = true;
return K;
}



int y = 1389;
bool L = IsLeapYear(y);
if (L)
{
}
else
{
}

ممکنه بگید چرا اشتباهه؟
فکر میکنم کسی که پاسخ رو غیر مفید ارزیابی کردن چیزی از سال کبیسه نمیدونن.

Saeed.Masoumi
یک شنبه 01 فروردین 1389, 01:46 صبح
سلام
دوستان توجه کنید تنها سالهای کبیسه هر 4 سال نیستند
ما کبیسه های 5 ساله نیز داریم
و...
این پی دی اف رو بخونید کمکتون می کنه:
ShDate Developer's Guide.pdf
پ و : والا ما جای از این E-Book کپی رایتشو ندیدم اگه وارز است لطفا بگید پاکش کنم

FastCode
یک شنبه 01 فروردین 1389, 08:43 صبح
سلام
دوستان توجه کنید تنها سالهای کبیسه هر 4 سال نیستند
ما کبیسه های 5 ساله نیز داریم
و...
این پی دی اف رو بخونید کمکتون می کنه:
ShDate Developer's Guide.pdf
پ و : والا ما جای از این E-Book کپی رایتشو ندیدم اگه وارز است لطفا بگید پاکش کنم

کد من هم دقیقا" همین رو در نظر گرفته.ولی نمیدونم چرا مفید ارزیابی نشده.
فکر میکنم باید سرچش رو باینری کنم درست شه

mn_zandy63
یک شنبه 01 فروردین 1389, 09:21 صبح
سلام FastCode جان
خیلی به ارزیابی دقت نکن، بعضی وقت ها یه بیکار پیدا میشه و میاد تمام پست ها رو منفی میزنه.
ایراد از کد شما نیست
کد FastCode به نظر کاملا درست میاد.
اما اگه .net ورژن 2 به بالا استفاده می کنی، کلاس PersianCalendar کارت رو راه میندازه.

int year = 1380;
var persianCal = new System.Globalization.PersianCalendar();
persianCal.IsLeapYear(year);

jannatmakan
پنج شنبه 06 شهریور 1399, 02:16 صبح
return true;
else
return false;
}