• ベストアンサー

C#で時計を作るには?

時間の取得の仕方はわかったのですが、 壁掛け時計のようなものが作れません。 どのように作ればいいか教えてください。 当方プログラミング初心者です。 使用ソフトはVisual C# 2005 Express Edition です。

質問者が選んだベストアンサー

  • ベストアンサー
  • shobon
  • ベストアンサー率66% (14/21)
回答No.2

Timerコントロールは、時間を取得するためではありません。 一定のタイミングでイベントを発生してもらうためにあります。(ここでは1秒毎にイベントを発生してもらって、1秒毎に針を刻んでもらう事にしました) 現在時間の取得は、Date.Now()を使用して取得します。 上の二つが理解できれば、後はイベントが発生する毎に 「秒針=現在の秒数×6度」 「分針=現在の分数×6度+α」 「時針=現在の時数×30度+Β」 の角度でDrawLineしてやれば良いだけです。 さらに慣れてきたらThreadを用いて、別のアプローチから針の移動を実現する事も可能でしょうが、ここでは一旦割愛します。

phantom_cr
質問者

お礼

アドバイスありがとうございました! おかげで完成しました。 オブジェクト言語に早く慣れたいと思います。

その他の回答 (2)

回答No.3

.NET(C#)で時刻を扱う場合はDateTime構造体(System.DateTime)を使います。 DateTime構造体のstaticプロパティNowで現在時刻を取得できます。 DateTime time = DateTime.Now; int h = time.Hour; int m = time.Minute; int s = time.Second; でどうでしょうか?

参考URL:
http://msdn2.microsoft.com/ja-jp/library/system.datetime_members.aspx
phantom_cr
質問者

お礼

アドバイスありがとうございます。 おかげで完成させることができました

  • shobon
  • ベストアンサー率66% (14/21)
回答No.1

質問が大雑把過ぎます。 なので、とりあえずまったく何もわからないと仮定しておきます。 まず、Windowsアプリケーションで、デジタル時計を作成する事を考えてみましょう。 新規フォームを用意して、Timerコントロール、Labelコントロールをセットします。 Timerコントロールで1秒毎にイベントを発生させます。 発生させたイベントの中で、Labelコントロールに現在の値を表示させるよう、設定します。 これでとりあえずそれっぽいものが完成するはずです。 後は、そこをベースに改良したい点を考えて、そのためにはどうすればいいかを考えてください。 以上です。 また、上の内容でわからないところがあったら、具体的にどこで引っかかってるのかを書いて、また質問してください。

phantom_cr
質問者

補足

アドバイスありがとうございます。 言葉足らずですいません。 自分が作りたいのはアナログ式の時計です 針を表示させるまではできたのですが Timerコントロールから時間の取得を行い 秒針/短針/長針で現在の時間を表示できるようになりますか? 針はDrawLineで書いています

関連するQ&A