Wednesday, September 28, 2011

Difference between two DateTime


public static void TimeSpanToDate(DateTime d1, DateTime d2, out int years, out int months, out int days)
        {
            // Added By Balajiprasad
            if (d1 > d2)
            {
                DateTime temp;
                temp = d2;
                d2 = d1;
                d1 = temp;
            }

            days = d2.Subtract(new DateTime(d2.Year, d2.Month - (d2.Day < d1.Day ? 1 : 0), d1.Day)).Days;

            months = d2.Month - d1.Month + ((d2.Month <= d1.Month && d2.Day < d1.Day) ? 11 : ((d2.Month < d1.Month && d2.Day >= d1.Day) ? 12 : ((d2.Month > d1.Month && d2.Day < d1.Day) ? -1 : 0)));

            years = d2.Year - d1.Year - ((d2.Month < d1.Month || (d2.Month == d1.Month && d2.Day < d1.Day)) ? 1 : 0);

            if (days > 31)
            {
                months++;
                days = days - 31;
            }
            if (months > 12)
            {
                years++;
                months = months - 12;
            }


        }

No comments:

Post a Comment