计算C#中两个日期之间的年,月和日

时间:2016-07-06 01:28:51

标签: c# date date-difference

我想要在两个日期之间经过确切的年,月和日。

let queue = dispatch_get_global_queue(QOS_CLASS_DEFAULT, 0)
dispatch_async(queue) {
    // some background task

    dispatch_async(dispatch_get_main_queue()) {   // note, `dispatch_async` is OK here
        // UI task asking for user input:
        let alert = NSAlert()
        ...
        alert.beginSheetModalForWindow(NSApp.mainWindow!) { result in
            dispatch_async(queue) {
                // some background task, treating user input (Yes/No)
            }
        }
    }
}

我希望使用C#找到上述两天之间经过的年数,月数和天数?

  

我的预期输出

     

年: 68 月: 10 天数: 23

我推荐了其中一篇帖子,因为他们只解释了几天Calculate difference between two dates (number of days)?

但我需要所有三个 - 年,月和日。请帮助我如何计算...

重复说明: 已经在Calculate Years, Months, weeks and Days中发布了具有相同逻辑的问题,该问题中提供的答案过于冗长而且在我的问题中我只询问年,月和日而不是周概念是相同的,但计算天数的逻辑与该问题相比不同,在这里我以非常简单的方式得到了答案。 我对答案感到满意

完全重复:

原始问题:How to get difference between two dates in Year/Month/Week/Day? 7年前被问到

您的标记问题:Calculate Years, Months, weeks and Days 5年前被问到

1 个答案:

答案 0 :(得分:5)

有趣的问题:

解决方案

void Main()
{
    DateTime zeroTime = new DateTime(1, 1, 1);
    DateTime olddate = new DateTime(1947, 8,15);
    olddate.Dump();
    DateTime curdate = DateTime.Now.ToLocalTime();
    curdate.Dump();

    TimeSpan span = curdate - olddate;

    // because we start at year 1 for the Gregorian 
    // calendar, we must subtract a year here.

    int years = (zeroTime + span).Year - 1;
    int months = (zeroTime + span).Month - 1;
    int days = (zeroTime + span).Day;

    years.Dump();
    months.Dump();
    days.Dump();
}