C#で時計プログラムを任意時刻スタートに改造する方法|ユーザー入力対応

C言語関連

C#で作成した時計プログラムを、現在時刻ではなくユーザーが指定した時刻から動かすように変更する方法を解説します。これにより、例えば14:30など任意の時刻を入力して時計をスタートできます。

ユーザー入力の取得

まず、コンソールまたはGUIから時刻を文字列として取得します。例としてコンソール入力では以下のように取得できます。

Console.WriteLine("開始時刻をHH:mm形式で入力してください:");
string input = Console.ReadLine();

取得した文字列をTimeSpanまたはDateTimeに変換し、時計の初期値として使用します。

DateTime変数を初期化

現在時刻を取得する箇所を、ユーザー入力で生成したDateTimeに置き換えます。

DateTime startTime = DateTime.ParseExact(input, "HH:mm", null);

これで時計はstartTimeから動作を開始します。

タイマーでの時刻更新

元のプログラムで使用しているTimerやUpdate関数では、DateTime.NowではなくstartTimeを基準に更新します。

例えば1秒ごとにstartTimeを1秒進め、表示に反映することで、任意時刻からの時計動作が可能です。

GUIでの表示更新

WindowsフォームやWPFで表示している場合、LabelやTextBlockに毎秒startTimeを表示します。

label1.Text = startTime.ToString("HH:mm:ss");
タイマーイベントでstartTimeを1秒ずつ加算します。

まとめ

C#の時計プログラムを任意の時刻スタートに改造するには、ユーザーから時刻入力を受け取り、DateTime変数で初期化し、タイマーでそのDateTimeを更新して表示する仕組みに変更します。これにより、自由に開始時刻を指定して時計を動かせるようになります。

コメント

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