سلام دوست من میتونی از این کلاس استفاده کنی که خودم نوشتمش برای یک پروژه از قبل: چندتا تابع داره برای تبدیل تاریخ میلادی به شمسی و اضافه کردن روز به تاریخ و ...
class ChangeDate
{
public static string MiladiToShamsi(DateTime _date)
{
PersianCalendar pc = new PersianCalendar();
StringBuilder sb = new StringBuilder();
try
{
sb.Append(pc.GetYear(_date).ToString("0000"));
sb.Append("/");
sb.Append(pc.GetMonth(_date).ToString("00"));
sb.Append("/");
sb.Append(pc.GetDayOfMonth(_date).ToString("00"));
return sb.ToString();
}
catch (ArgumentOutOfRangeException)
{
return null;
}
}
public static string ReturnSubDate(string Date)
{
Date = "%" + Date + "%";
int year = Int32.Parse(Extractor.Extract(Date, "%", "/", 1));
int month = Int32.Parse(Extractor.Extract(Date, "/", "/", 1));
int day = Int32.Parse(Extractor.Extract(Date, "/", "%", 2));
if (day == 30 )
{
if (month <= 6)
{
day++;
}
else
{
day = 1;
if (month < 12)
{
month++;
}
else
{
month = 1;
year++;
}
}
}
else if (day == 31)
{
day = 1;
month++;
}
else
{
day++;
}
Date = year.ToString() + "/" + month.ToString() + "/" + day.ToString();
return Date;
}
public static string ReturnToEndDate(string Date)
{
string[] words = Date.Split('/');
int year = Int32.Parse(words[0]);
int month = Int32.Parse(words[1]);
int day = Int32.Parse(words[2]);
if (day <= 30)
{
if (month <= 6)
{
day = day + 30;
month = month + (day / 31);
day = day % 31;
if (day == 0)
{
month--;
day = 31;
}
}
else
{ if (month < 12)
{
day = day + 30;
month = month + (day / 30);
day = day % 30;
if (day== 0)
{
day = 30;
month = month -1;
}
}
else
{
day = day + 30;
month = month + (day / 30);
day = day % 30;
year++;
if (day == 0)
{
day = 30;
month = month - 1;
}
if (month > 12)
month = month % 12;
}
}
}
else if (day == 31)
{
day = 30;
month++;
}
Date = year.ToString("0000") + "/" + month.ToString("00") + "/" + day.ToString("00");
return Date;
}
}