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

Calculate Year, Month and Day between two Dates in C#

本问题已经有最佳答案,请猛点这里访问。

我想知道两个日期之间的确切年份、月份和日期。

1
2
3
DateTime startDate = new DateTime(1974, 8, 15);

DateTime endDate = DateTime.Now.ToLocalTime();

我想用c找出上述两天之间的年、月和日数。

My Expected Output

Years: 68 Months: 10 Days: 23

我提到了其中一个帖子,他们解释说只有天计算两个日期之间的差额(天数)?

但我需要三年,一个月,一天。请协助我计算…

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

完全复制:

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

你标记的问题:计算年、月、周和日(5年前被问到)


有趣的问题:

解决方案是

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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();
}