MrHosseinbor
چهارشنبه 03 اردیبهشت 1393, 09:17 صبح
سلام بچه ها مشکل این کد کجاست روز 30 تا بیشتر نشون میده!
string ShamsiDate(int iMiladiYear, int iMildiMonth, int iMiladiDay) {
string tmp = "";
int[] iMiladiMonthsDays = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
bool IsLeapYear=((iMiladiYear%4)==0);
int iTotalMiladiDay, iMiladiYearsDay = 0, iMiladiMonthsDay = 0,
iTotalShamsiDay=0,iShamsiYearsDay=0,iShamsiYear=0,
iShamsiMonth=0,iShamsiDay=0,iShamsiMonthsDay=0;
for (int i = 0; i < iMildiMonth; i++)
{
iMiladiMonthsDay += iMiladiMonthsDays[i] + (IsLeapYear && i == 1 ? 1 : 0);
}
iMiladiYearsDay = iMiladiYear * 365 + iMiladiYear / 4;
iTotalMiladiDay = iMiladiYearsDay + iMiladiMonthsDay + iMiladiDay;
iTotalShamsiDay = iTotalMiladiDay - 226899;
iShamsiYear = iTotalShamsiDay / 365;
iShamsiYear = (iTotalShamsiDay - iShamsiYear / 4)/365;
iShamsiMonthsDay = iTotalShamsiDay - (iShamsiYear * 365 + iShamsiYear / 4);
tmp = iShamsiYear + "/" + iShamsiMonth + "/" + iShamsiDay;
return tmp;
}
string ShamsiDate(int iMiladiYear, int iMildiMonth, int iMiladiDay) {
string tmp = "";
int[] iMiladiMonthsDays = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
bool IsLeapYear=((iMiladiYear%4)==0);
int iTotalMiladiDay, iMiladiYearsDay = 0, iMiladiMonthsDay = 0,
iTotalShamsiDay=0,iShamsiYearsDay=0,iShamsiYear=0,
iShamsiMonth=0,iShamsiDay=0,iShamsiMonthsDay=0;
for (int i = 0; i < iMildiMonth; i++)
{
iMiladiMonthsDay += iMiladiMonthsDays[i] + (IsLeapYear && i == 1 ? 1 : 0);
}
iMiladiYearsDay = iMiladiYear * 365 + iMiladiYear / 4;
iTotalMiladiDay = iMiladiYearsDay + iMiladiMonthsDay + iMiladiDay;
iTotalShamsiDay = iTotalMiladiDay - 226899;
iShamsiYear = iTotalShamsiDay / 365;
iShamsiYear = (iTotalShamsiDay - iShamsiYear / 4)/365;
iShamsiMonthsDay = iTotalShamsiDay - (iShamsiYear * 365 + iShamsiYear / 4);
tmp = iShamsiYear + "/" + iShamsiMonth + "/" + iShamsiDay;
return tmp;
}