-
تاریخ شمسی در سی شارپ
سلام
من از این کد برای گرفتن تاریخ جاری سیستم و تبدیل آن به شمسی استفاده میکردم.
این کد تا دیروز درست کار میکرد ولی امروز که روز اول 2013 است دیگه درست کار نمیکنه.
دوستان خیلی فوریه . لطفا راهنمایی کنید چطور این تکه کد رو اصلاح کنم که درست کار کنه.
کد:
DateTime j = DateTime.Now;
string k = j.DayOfYear.ToString();
int i = int.Parse(k);
int l;
int years = j.Year - 622;
string mounth;
string year;
string day;
if (i >= 21 && i <= 50)
{
mounth = "11";
l = i - 20;
}
else if (i >= 51 && i <= 79)
{
mounth = "12";
l = i - 50;
}
else if (i >= 80 && i <= 110)
{
mounth = "01";
l = i - 79;
}
else if (i >= 111 && i <= 141)
{
mounth = "02";
l = i - 110;
}
else if (i >= 142 && i <= 172)
{
mounth = "03";
l = i - 141;
}
else if (i >= 173 && i <= 203)
{
mounth = "04";
l = i - 172;
}
else if (i >= 204 && i <= 234)
{
mounth = "05";
l = i - 203;
}
else if (i >= 235 && i <= 265)
{
mounth = "06";
l = i - 234;
}
else if (i >= 266 && i <= 295)
{
mounth = "07";
l = i - 265;
}
else if (i >= 296 && i <= 325)
{
mounth = "08";
l = i - 295;
}
else if (i >= 326 && i <= 355)
{
mounth = "09";
l = i - 325;
}
else
{
mounth = "10";
l = i - 355;
}
day = l.ToString();
if (i < 79)
year = years.ToString();
else
{
years++;
year = years.ToString();
}
if (int.Parse(day) < 10)
{
day = "0" + day;
}
string Date = year + "/" + mounth + "/" + day;
return Date;
-
این کد مشکل رو حل کرد . ولی اگه دوستان کمک کنند کد بالا رو اصلاح کنم ممنون میشم.
کد:
System.Globalization.PersianCalendar pc = new System.Globalization.PersianCalendar();
return pc.GetYear(DateTime.Now) + "/" + pc.GetMonth(DateTime.Now) + "/" + pc.GetDayOfMonth(DateTime.Now);
-
دوست گرامی کد هاتون قابل خوندن نیستن!!!!
لطفا ابتددا دو تا تگ کد بذارید(به شکل یه # توی ابزار متن مشخصه(چهارمی از پایین سمت چپ!)..... بعد کد ها رو داخل دو تا تگش قرار بدین تا شکلشون بهم نریزه!!
در خصوص تاریخ هم به نظرم بهتر باشه که از یه کلاس استاندارد استفاده کنین.... مثلا کلاس های PersianCalender یا چنین چیزایی!