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

本文关键字:之间 日期 两个 计算 | 更新日期: 2023-09-27 17:55:19

我希望两个日期之间经过确切的年,月和日。

DateTime startDate = new DateTime(1974, 8, 15);
DateTime endDate = DateTime.Now.ToLocalTime();

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

我的预期输出

年: 68 个月: 10 天: 23

我提到了其中一篇文章,因为他们只解释了几天 计算两个日期之间的差异(天数)?

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

重复说明:已经有一个具有相同逻辑的问题发布在计算年,月,周和日,该问题中提供的答案太长,在我的问题中,我只问年,月和日期而不是周概念是相同的,但与该问题相比,计算天数的逻辑不同,在这里我以非常简单的方式得到了答案。我对我的回答很满意

完全重复:

原始问题:如何获得年/月/周/日中两个日期之间的差异?(7年前问)

您的标记问题:计算年,月,周和日(5年前问

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

有趣的问题:

解决方案是

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();
}