若葉がまぶしい季節ですね。武田です。
授業中に「へんな時計を作る」という課題を出しました。
一見普通のデジタル時計です。
1秒後…(?!)
約5分後…
時間を遡っています。へんな時計ですね。
物事の手順を考えるためにこの課題を出しました。
1秒後に時刻を―1秒する -> 0秒になったら次は59秒とする -> そのときは分を-1分する….
などと考えていきます。これをプログラム化するのです。
一応、解答例を以下に示します。Visual Studio2015で作成。言語はC#。
デザイン部分(ラベルコントロールとタイマーコントロールを一つずつ配置)
プログラム部分
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace へんな時計 { public partial class Form1 : Form { // 時、分、秒 private int hour, minute, second; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { // 現在時刻取得 hour = DateTime.Now.Hour; minute = DateTime.Now.Minute; second = DateTime.Now.Second; // 本当の時刻を表示 label1.Text = string.Format("{0:00}:{1:00}:{2:00}", hour, minute, second); // タイマースタート timer1.Interval = 1000; timer1.Enabled = true; } private void timer1_Tick(object sender, EventArgs e) { // 時刻をさかのぼる second--; if (second < 0) { second = 59; minute--; if (minute < 0) { minute = 59; hour--; if (hour < 0) { hour = 23; } } } // へんな時計表示 label1.Text = string.Format("{0:00}:{1:00}:{2:00}", hour, minute, second); } } }
もっとへんな時計皆さんも作ってみて下さい!