簡體   English   中英

c#兩個用戶輸入日期之間的差異,以月和年為單位

[英]c# The difference between two user input dates in months and years

我正在使用以下代碼:

    static void Main(string[] args)
    {
        Dates();
        Console.ReadLine();        

    }

    public static void Dates()
    {

        Console.WriteLine("Enter any date: ");
        DateTime firstDate = DateTime.Parse(Console.ReadLine());
        Console.WriteLine("Enter another date: ");
        DateTime secondDate = DateTime.Parse(Console.ReadLine());

        TimeSpan diff = firstDate - secondDate;

        Console.WriteLine("Days : " + diff.TotalDays.ToString());
        Console.WriteLine("Hours : " + diff.TotalHours.ToString());
        Console.WriteLine("Minutes : " + diff.TotalMinutes.ToString());


    }

我還無法弄清楚如何計算兩個日期之間月份和年份的差異。 有人可以幫忙嗎? 另外,如何使程序每次都返回一個正整數?

這是對問題的第一部分的答案,計算了年份和月份中兩個日期之間的差異(以及天,為什么不這樣)。 這個問題有點模棱兩可,所以我做了一些假設。

就像我在計算年齡時通常所說的“差異”一樣。 如,如果起始日期是5/12/2014和結束日期是2/16/2017 ,然后我計算差值為2 years, 9 months, and 3 days 你得到的漂移。

其次,我沒有考慮一天中的時間。 就像我創建的DateTime對象僅指定year,, and日。

因此,這里去:

public static void DateTimeDiff(DateTime dt1, DateTime dt2, out int years, out int months, out int days)
{
    DateTime start = dt1 < dt2 ? dt1 : dt2;
    DateTime end = dt2 > dt1 ? dt2 : dt1;

    years = 0;
    months = 0;
    days = 0;

    while (start.AddYears(1) < end)
    {
        start = start.AddYears(1);
        years++;
    }

    while (start.AddMonths(1) < end)
    {
        start = start.AddMonths(1);
        months++;
    }

    while (start.AddDays(1) < end)
    {
        start = start.AddDays(1);
        days++;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM