0

「2011」など、特定の年を含むテキスト フィールドがあります。70 年前の年の値を計算する必要があります。

テキストボックスのデフォルト値を提供するこのコードはすでにあります。

var LastYear = DateTime.Now.AddYears(-1).ToString("yyyy"); //"2011"
Yeartextbox.Text = LastYear;

ユーザーは、テキスト ボックスの値を任意の年に変更できます。テキスト ボックスからデータを取得し、70 年前に計算する必要があります。たとえば、テキスト ボックスに「2011」が含まれている場合、1941 年の結果が必要です。ユーザーが 2000 を入力した場合、1930 年の結果が必要です。

4

6 に答える 6

1

Textbox から読み取り、DateTimeオブジェクトに割り当ててAddYears関数を呼び出すのを止めているのは何ですか?

DateTime dateEntered=DateTime.Parse(Yeartextbox.Text);
var thatYear= dateEntered.AddYears(-70);
Yeartextbox.Text = thatYear.ToShortDateString();
于 2012-06-11T21:34:24.567 に答える
0

私が理解しているかどうかはわかりません....しかし、これはあなたが探しているものですか....テキストボックスに-70を事前に入力していますか?

var LastYear = DateTime.Now.AddYears(-70).ToString("yyyy"); //"2011" 
Yeartextbox.Text = LastYear; 
于 2012-06-11T21:34:32.437 に答える
0

日付ではなく、テキスト ボックスに年を格納しています。たとえば、2011年です。これは単なる数字、整数であり、整数計算を行うことができます。(たまたま1年という事実は、-オペレーターには関係ありません。)

そこから 70 年を引きたい場合は、2011 - 70 を実行します。

var year = Int32.Parse(Yeartextbox.Text) - 70;
于 2012-06-11T21:38:51.047 に答える
0

2 つのテキスト ボックスがあると仮定すると、その方法は次のとおりです。

// Get year as an integer from the text box
int currentYearAsInt = int.Parse(txtCurrentYear.Text);

// Create DateTime out of it (January 1st 1984, for example)
DateTime currentYear = new DateTime(currentYearAsInt, 1, 1);

// Create new DateTime 70 years older (remember, you cannot just call AddYears on the object, you have to assign returned value)
DateTime oldYear = currentYear.AddYears(-70);

// Populate new text box with old year's value (or do whatever you want with it
txtOldYear.Text = oldYear.Year.ToString();

それが役に立てば幸い。

于 2012-06-11T21:41:05.560 に答える
0

たとえば、彼らが今年望むなら、それは 2012-70 年になるでしょう

私があなたを正しく理解していれば、年をユーザーからDateTimeオブジェクトに変換するのに問題があります。

したがって、ユーザーが feと入力した場合は、 2005want 1935-01-01. 私は正しいですか?

これはうまくいきます:

var input = "2005";  // Yeartextbox.Text
int year = 0;
DateTime result;
if(int.TryParse(input, out year))
{
    result = new DateTime(year, 1, 1).AddYears(-70); //1935-01-01
}
于 2012-06-11T21:43:25.530 に答える
0
        string initialYear = "2011";
        int year;
        string calculatedYear;

        if (int.TryParse(initialYear, out year))
        {
            var initialDate = new DateTime(year, 1, 1);
            calculatedYear = initialDate.AddYears(-70).Year.ToString();
        }
        else
        { 

            // Handle error since no valid value was entered
        }

これでうまくいきます (明らかにコードに適応させる必要があります)。そうでない場合は、画面が正しく更新されていることを確認する必要があります。

于 2012-06-11T21:44:03.333 に答える