-2

重複の可能性:
2 つの日付の日数差

選択した 2 つの日付の間の日数を知る必要があります。通常、日付を比較するには DateTime.CompareTo を使用しますが、ここでは状況が異なります。前もって感謝し、ばかげた質問で申し訳ありません。

4

3 に答える 3

6

これを使って:

   int DaysBetween(DateTime d1, DateTime d2) {
    TimeSpan span = d2.Subtract(d1);
    return Math.Abs((int)span.TotalDays);
}

///

Console.WriteLine(DaysBetween(DateTime.Now.AddDays(10), DateTime.Now) );

10を返します

于 2012-05-14T04:56:59.377 に答える
1

これを試してください(.net TimeSpanクラスを使用して改善できます)

        public static int DateDiff(string Interval, DateTime Date1, DateTime Date2)
    {
        int difVale = 0;
        DateTime startDate, endDate;

        if (Date1 > Date2)
        {
            endDate = Date1; 
            startDate = Date2;
        }
        else
        {
            startDate = Date1; 
            endDate = Date2;
        }
        switch (Interval)
        {
            case "D":
            case "d":
                for (int nYear = startDate.Year; nYear < endDate.Year; nYear++)
                {
                    difVale += new DateTime(nYear, 12, 31).DayOfYear;
                }
                difVale += endDate.DayOfYear - startDate.DayOfYear;
                break;

            case "M":
            case "m":
                difVale = endDate.Year - startDate.Year;
                difVale = difVale * 12;
                difVale += endDate.Month - startDate.Month;
                break;
            case "Y":
            case "y":
                difVale = endDate.Year - startDate.Year;
                break;
        }
        if (Date1 > Date2)
        {
            difVale = -difVale;
        }
        return difVale;
    }
于 2012-05-14T05:37:35.413 に答える
1

元の解決策ではありませんが:

DateTime d1=DateTime.MinValue;
DateTime d2=DateTime.MaxValue;
TimeSpan span=d2-d1;
Console.WriteLine
         ( "There're {0} days between {1} and {2}" , span.TotalDays, d1.ToString(), d2.ToString() );

ソース: http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/0625cefa-461b-4a3c-b7f0-d39d06741b70/

于 2012-05-14T04:57:30.487 に答える