نقل قول نوشته شده توسط علی فتحی مشاهده تاپیک
کسی به جواب نرسید توضیح بهتر بدهید
اینم جواب کامل که به درستی کار میکنه.



public string ShamsiToMiladi(string ShamsiDate)
{
try
{
PersianCalendar PDate = new PersianCalendar();
Int32 y = 0; Int32 m = 0; Int32 d = 0;

if (ShamsiDate.Length == 10)
{

y = Int32.Parse(ShamsiDate.Substring(0, 4));
m = Int32.Parse(ShamsiDate.Substring(5, 2));
d = Int32.Parse(ShamsiDate.Substring(8, 2));
}
else
{
return null;
}
return (PDate.ToDateTime(y, m, d, 1, 1, 1, 1, 1).ToShortDateString());
}
catch (Exception ex)
{
throw ex;
}
}



private void button4_Click(object sender, EventArgs e)
{
DateTime date1 = DateTime.Parse(ShamsiToMiladi("1369/04/28"));
DateTime date2 = DateTime.Parse(ShamsiToMiladi("1392/01/14"));

int days = date2.Day - date1.Day;
if (days < 0)
{
date2 = date2.AddMonths(-1);
days += DateTime.DaysInMonth(date2.Year, date2.Month);
}

int months = date2.Month - date1.Month;
if (months < 0)
{
date2 = date2.AddYears(-1);
months += 12;
}

int years = date2.Year - date1.Year;

MessageBox.Show(string.Format("{0} year{1}, {2} month{3} and {4} day{5}",
years, (years == 1) ? "" : "s",
months, (months == 1) ? "" : "s",
days, (days == 1) ? "" : "s"));
}