3

2 つの DateTime オブジェクトがあるとします。1 つは今日の日付を表し、もう 1 つはユーザーが指定した生年月日を表します。

2 つの日付の差を簡単に計算し、次の形式で文字列を出力したいと考えています。

17歳 - 2ヶ月 - 18日

それらの数字は単なる例です。C#でこれを達成するにはどうすればよいですか?

編集:

はい、あらゆる種類の組み合わせを試しましたが、年の差は次のようにしか取得できませんでした。

DateTime userDate = SuppliedDate;
int userAge = DateTime.Now.Year - userDate.Year;
DateTime today = DateTime.Now;
if (userDate > today.AddYears(-userAge))
{
    userAge--;
}
Age.Text = userAge.ToString() + " years";

ありがとうございました。

4

5 に答える 5

6

TimeSpan を Datetime に変換するだけです。

        var test = DateTime.Now;
        var test2 = DateTime.Now;
        var result = test - test2;
        DateTime resultDate = DateTime.MinValue + result;
于 2013-05-17T08:25:37.137 に答える
0

DateC# で別のものからa を減算すると、TimeSpan構造体が返されます。

TimeSpans は、カスタム フォーマット文字列を使用しても、月または年を提供するようには設計されていません。

これは、利用可能なプロパティに基づいて年と月を手動で計算する必要があることを意味します。最大で日ですが、精度ははるかに低くなります。

于 2013-05-17T08:29:40.753 に答える
-4

次のようなものを使用できます。

var userDate = new DateTime(1980, 5, 3);
var dateDif = DateTime.Now.Subtract(userDate);
string output = dateDif.ToString("yy Years - MM Months - dd Days");
于 2013-05-17T08:33:28.060 に答える