PDA

View Full Version : تاریخ شمسی در سی شارپ



نیکناز
سه شنبه 12 دی 1391, 08:03 صبح
سلام
من از این کد برای گرفتن تاریخ جاری سیستم و تبدیل آن به شمسی استفاده میکردم.
این کد تا دیروز درست کار میکرد ولی امروز که روز اول 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;

نیکناز
سه شنبه 12 دی 1391, 08:19 صبح
این کد مشکل رو حل کرد . ولی اگه دوستان کمک کنند کد بالا رو اصلاح کنم ممنون میشم.


System.Globalization.PersianCalendar pc = new System.Globalization.PersianCalendar();
return pc.GetYear(DateTime.Now) + "/" + pc.GetMonth(DateTime.Now) + "/" + pc.GetDayOfMonth(DateTime.Now);