One very essential function for developers to find date, month & year difference between two dates.
the parameters here are respectively end date & start date..
public static string FindDateDiffFrmEndtoStart(DateTime dtEndDate, DateTime dtStartDate)
{
string result;
int[] arr = { 31, 28, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
int Year, Day, Month, StartYear, EndYear, StartDay, EndDay, StartMonth, EndMonth;
StartYear = dtStartDate.Year;
EndYear = dtEndDate.Year;
StartMonth = dtStartDate.Month;
EndMonth = dtEndDate.Month;
string[] Startday = dtStartDate.ToShortDateString().Split('/');
string[] Endnday = dtEndDate.ToShortDateString().Split('/');
StartDay = (int)Convert.ToInt16(Startday[1]);
EndDay = (int)Convert.ToInt16(Endnday[1]);
if (EndDay < StartDay)
{
if (EndMonth == 1)
EndDay += arr[EndMonth - 1];
else if (EndMonth == 2)
{
if (DateTime.IsLeapYear(EndYear))
EndDay += arr[EndMonth];
else
EndDay += arr[EndMonth - 1];
}
else
EndDay += arr[EndMonth];
EndMonth--;
}
if (EndMonth < StartMonth)
{
EndMonth += 12;
EndYear--;
}
Year = EndYear - StartYear;
Month = EndMonth - StartMonth;
Day = EndDay - StartDay;
result = (Year > 0 ? Year.ToString() + " Year(s) " : string.Empty) + (Month > 0 ? Month.ToString() + " Month(s) " : string.Empty) + (Day > 0 ? Day.ToString() + " Day(s)" : string.Empty);
return result;
}
very useful post Arif..thanks a lot. i have been digging around for such and now i m happy to get what i have wanted..
ReplyDeletebest of luck
Rony.