Visual Studio 2015 C#:へんな時計

若葉がまぶしい季節ですね。武田です。
授業中に「へんな時計を作る」という課題を出しました。
一見普通のデジタル時計です。

へんな時計1

1秒後…(?!)

へんな時計2

約5分後…

へんな時計3

時間を遡っています。へんな時計ですね。

物事の手順を考えるためにこの課題を出しました。

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);
		}
	}
}

もっとへんな時計皆さんも作ってみて下さい!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です