How to calculate the difference between 2 dates in days, months and years

  • Thread starter Alexander Vasilevsky
  • Start date
J

jlnm

I'd start with the TimeSpan object.

http://msdn2.microsoft.com/en-us/library/system.timespan.totaldays.aspx







- Show quoted text -

Try This

System.DateTime FirstDate
System.DateTime SecondDate
System.DateTime OriginalDate
int year,month,day,monthDays;
year=month=day=monthDays=0;

OriginalDate=FirstDate;
monthDays=System.DateTime.DaysInMonth(OriginalDate.Year,OriginalDate.Month);


year=FirstDate.year-SecondDate.Year
if(SecondDate.DayOfYear<FirstDate.DayOfYear)
{
year--;
}


FirstDate=new
System.DateTime(SecondDate.Year,FirstDate.Month,FirstDate.Day);
month=Math.Abs(FirstDate.Month-((SecondDate.Month<FirstDate.Month) ?
12+FirstDate.Month : FirstDate.Month));

if(SecondDate.Day<FirstDate.Day)
{
month--;
day=monthDays-FirstDate.Day-SecondDate.Day;
}
else
{
day=SecondDate.Day-FirstDate.Day;
}
 
J

jlnm

Try This

System.DateTime FirstDate
System.DateTime SecondDate
System.DateTime OriginalDate
int year,month,day,monthDays;
year=month=day=monthDays=0;

OriginalDate=FirstDate;
monthDays=System.DateTime.DaysInMonth(OriginalDate.Year,OriginalDate.Month)-;

year=FirstDate.year-SecondDate.Year
if(SecondDate.DayOfYear<FirstDate.DayOfYear)
{
year--;

}

FirstDate=new
System.DateTime(SecondDate.Year,FirstDate.Month,FirstDate.Day);
month=Math.Abs(FirstDate.Month-((SecondDate.Month<FirstDate.Month) ?
12+FirstDate.Month : FirstDate.Month));

if(SecondDate.Day<FirstDate.Day)
{
month--;
day=monthDays-FirstDate.Day-SecondDate.Day;}

else
{
day=SecondDate.Day-FirstDate.Day;



}- Hide quoted text -

- Show quoted text -- Hide quoted text -

- Show quoted text -

Sorry:::::
System.DateTime FirstDate
System.DateTime SecondDate
int year,month,day,monthDays;
year=month=day=monthDays=0;

monthDays=System.DateTime.DaysInMonth(FirstDate.Year,FirstDate.Month);


year=FirstDate.year-SecondDate.Year
if(SecondDate.DayOfYear<FirstDate.DayOfYear)
{
year--;
}

month=Math.Abs(FirstDate.Month-((SecondDate.Month<FirstDate.Month) ?
12+FirstDate.Month : FirstDate.Month));

if(SecondDate.Day<FirstDate.Day)
{
month--;
day=monthDays-FirstDate.Day+SecondDate.Day;
}
else
{
day=SecondDate.Day-FirstDate.Day;
}
 
J

jlnm

Sorry:::::
System.DateTime FirstDate
System.DateTime SecondDate
int year,month,day,monthDays;
year=month=day=monthDays=0;

monthDays=System.DateTime.DaysInMonth(FirstDate.Year,FirstDate.Month);

year=FirstDate.year-SecondDate.Year
if(SecondDate.DayOfYear<FirstDate.DayOfYear)
{
        year--;

}

month=Math.Abs(FirstDate.Month-((SecondDate.Month<FirstDate.Month) ?
12+FirstDate.Month : FirstDate.Month));

if(SecondDate.Day<FirstDate.Day)
{
        month--;
        day=monthDays-FirstDate.Day+SecondDate.Day;}

else
{
        day=SecondDate.Day-FirstDate.Day;



}- Hide quoted text -

- Show quoted text -- Hide quoted text -

- Show quoted text -
I fired that off, yesterday. You'll have to tweak it. But that is
the idea!
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top