- ベストアンサー
C#で時計を作るには?
時間の取得の仕方はわかったのですが、 壁掛け時計のようなものが作れません。 どのように作ればいいか教えてください。 当方プログラミング初心者です。 使用ソフトはVisual C# 2005 Express Edition です。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Timerコントロールは、時間を取得するためではありません。 一定のタイミングでイベントを発生してもらうためにあります。(ここでは1秒毎にイベントを発生してもらって、1秒毎に針を刻んでもらう事にしました) 現在時間の取得は、Date.Now()を使用して取得します。 上の二つが理解できれば、後はイベントが発生する毎に 「秒針=現在の秒数×6度」 「分針=現在の分数×6度+α」 「時針=現在の時数×30度+Β」 の角度でDrawLineしてやれば良いだけです。 さらに慣れてきたらThreadを用いて、別のアプローチから針の移動を実現する事も可能でしょうが、ここでは一旦割愛します。
その他の回答 (2)
- taniyan001
- ベストアンサー率22% (2/9)
.NET(C#)で時刻を扱う場合はDateTime構造体(System.DateTime)を使います。 DateTime構造体のstaticプロパティNowで現在時刻を取得できます。 DateTime time = DateTime.Now; int h = time.Hour; int m = time.Minute; int s = time.Second; でどうでしょうか?
お礼
アドバイスありがとうございます。 おかげで完成させることができました
- shobon
- ベストアンサー率66% (14/21)
質問が大雑把過ぎます。 なので、とりあえずまったく何もわからないと仮定しておきます。 まず、Windowsアプリケーションで、デジタル時計を作成する事を考えてみましょう。 新規フォームを用意して、Timerコントロール、Labelコントロールをセットします。 Timerコントロールで1秒毎にイベントを発生させます。 発生させたイベントの中で、Labelコントロールに現在の値を表示させるよう、設定します。 これでとりあえずそれっぽいものが完成するはずです。 後は、そこをベースに改良したい点を考えて、そのためにはどうすればいいかを考えてください。 以上です。 また、上の内容でわからないところがあったら、具体的にどこで引っかかってるのかを書いて、また質問してください。
補足
アドバイスありがとうございます。 言葉足らずですいません。 自分が作りたいのはアナログ式の時計です 針を表示させるまではできたのですが Timerコントロールから時間の取得を行い 秒針/短針/長針で現在の時間を表示できるようになりますか? 針はDrawLineで書いています
お礼
アドバイスありがとうございました! おかげで完成しました。 オブジェクト言語に早く慣れたいと思います。