7

2つの日付の差を計算しようとしています。これは私が現在使用しているものです:

int currentyear = DateTime.Now.Year;

DateTime now = DateTime.Now;
DateTime then = new DateTime(currentyear, 12, 26);
TimeSpan diff = now - then;
int days = diff.Days;
label1.Text = days.ToString() + " Days Until Christmas";

休日を除いて、すべて正常に動作します。これは、1日24時間未満はカウントされないためだと思います。そうする方法はありますか?ありがとうございました。

4

4 に答える 4

13
int days = (int)Math.Ceiling(diff.TotalDays);
于 2009-12-03T10:26:39.707 に答える
1

問題はかなり哲学的です。クリスマスが明日だったとしたら、残り1日、または残り0日だと思いますか。明日の日を計算に入れると、答えは0になります。

于 2009-12-03T10:32:54.617 に答える
1

次のものを交換すると、問題は解決します。

DateTime.Now

と:

DateTime.Today

差の計算は丸一日で機能するためです。

于 2009-12-03T10:57:10.720 に答える
0

私は通常、次のコードを使用して、出力が必要なユニットが意図したとおりに出力を取得します。

        DateTime[] dd = new DateTime[] { new DateTime(2014, 01, 10, 10, 15, 01),new DateTime(2014, 01, 10, 10, 10, 10) };

        int x = Convert.ToInt32((dd[0] - dd[1]).TotalMinutes);

        String unit = "days";

        if (x / 60 == 0)
        {
            unit = "minutes";
        }

        else if (x / 60 / 24 == 0)
        {
            unit = "hours";
            x = x / 60;
        }

        else
        {
            x = x / (60 * 24);
        }

        Console.WriteLine(x + " " + unit);
于 2014-04-15T10:21:57.910 に答える