C# winform で「180」のような自然数で日付値を追加するにはどうすればよいですか?

プログラミングQA


お願いします サインアップまたはサインイン
投票する。

0.00/5 (投票しないでください)

続きを見る:

入力された日から正確な日付を伝えるプログラムを c# winform で作成しています。 ここでは、2 つの DateTimePicker と 1 つの Textbox を使用しています。

例えば ​​:

DateTimePicker1.Text = textbox1.Text + DateTimePicker2.Text; // 入力した日から正確な日付が表示されます。

Textbox でこの出力を生成したい:

2022 年 1 月 11 日 + 180 日 = 2023 年 4 月 30 日

教えてください。 私はC#が初めてなので、コードまたはアルゴリズムを持っている人がいれば教えてください。

私が試したこと:

私はまだコードを試していません。

投稿しました

更新しました 4時間5分前

コメント
https://learn.microsoft.com/en-us/dotnet/api/system.datetime.adddays?view=net-7.0

var dt1 = dateTimePicker2.Value;
var dt2 = dt1.AddDays(int.Parse(textBox1.Text));
dateTimePicker1.Value = dt2;

この回答を共有する

まず、物事の Text プロパティの使用をやめ、より「自然な」値を使用してください。

DateTimePicker には Value プロパティがあります値プロパティ[^] 選択した日付を DateTime オブジェクトとして返します。 それを使用すると、それを使って数学を行うことができます。 テキストボックスが2つある場合 txtDaysForward および txtResult の場合、前者を整数値に変換し、それを DateTimePicker.Value に追加する必要があります。

まず、ユーザーが入力した文字列を整数に変換します。

C#
if (!int.TryParse(txtDaysForward.Text, out int daysForward))
   {
   ... report a problem to the user - that's not a number ...
   return;
   }

次に、結果を設定できます。

C#
DateTime start = MyDateTimePicker.Value;
txtResult.Text = $"{start} + {daysForward} = {start.AddDays(daysForward)}";

または、2 番目の DateTimePicker を結果の日付に設定します。

C#
DateTime start = MyDateTimePicker.Value;
ResultDateTimePicker.Value = start.AddDays(daysForward);

試してみてください。私の言いたいことがわかるでしょう。

この回答を共有する

コメント
ニキル・ヨギ
1時間15分前
本当にありがとう! 出来た。 もう一度ありがとう…
どういたしまして!

このコンテンツは、関連するソース コードとファイルとともに、 コード プロジェクト オープン ライセンス (CPOL)



Source link

コメント

タイトルとURLをコピーしました