使用C#的日期差异

这个问题在这里已经有了答案:

  • 我如何用C#计算某人的年龄? 64个答案

  • 我已经编写了一个实现,它能够正确使用相隔一年的日期。

    但是,与其他算法不同,它不会优雅地处理负时间片。 它也不使用自己的日期算法,而是依赖于标准库。

    所以不要紧张,这里是代码:

    DateTime zeroTime = new DateTime(1, 1, 1);
    
    DateTime a = new DateTime(2007, 1, 1);
    DateTime b = new DateTime(2008, 1, 1);
    
    TimeSpan span = b - a;
    // Because we start at year 1 for the Gregorian
    // calendar, we must subtract a year here.
    int years = (zeroTime + span).Year - 1;
    
    // 1, where my other algorithm resulted in 0.
    Console.WriteLine("Yrs elapsed: " + years);
    

    使用:

    int Years(DateTime start, DateTime end)
    {
        return (end.Year - start.Year - 1) +
            (((end.Month > start.Month) ||
            ((end.Month == start.Month) && (end.Day >= start.Day))) ? 1 : 0);
    }
    

    我们必须编写一张支票来确定两个日期之间的差异,开始日期和结束日期是否大于2年。

    感谢上面的提示,它的完成如下:

     DateTime StartDate = Convert.ToDateTime("01/01/2012");
     DateTime EndDate = Convert.ToDateTime("01/01/2014");
     DateTime TwoYears = StartDate.AddYears(2);
    
     if EndDate > TwoYears .....
    
    链接地址: http://www.djcxy.com/p/54345.html

    上一篇: Date difference in years using C#

    下一篇: How do I get the number of days between two dates in JavaScript?