Created
November 8, 2018 16:10
-
-
Save nabesi777/10fbaaf7dc49e4e36490d44cbef88a72 to your computer and use it in GitHub Desktop.
C# アラーム時計
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | |
using System.Media; | |
namespace AlarmClock | |
{ | |
public partial class Form1 : Form | |
{ | |
private SoundPlayer player = null; | |
public Form1() | |
{ | |
InitializeComponent(); | |
timer1.Start(); | |
} | |
private void Form1_Load(object sender, EventArgs e) | |
{ | |
this.Text = Application.ProductName; | |
//タイマーの初期設定 | |
timer1.Interval = 1000; | |
timer1.Enabled = true; | |
this.buttonStart.Enabled = false; //最初はタイマーボタンを押せない | |
} | |
//時刻表示、時報機能 | |
private void timer1_Tick(object sender, EventArgs e) | |
{ //時刻表示 | |
DateTime d = DateTime.Now; | |
時刻.Text = string.Format("{0:00}時{1:00}分{2:00}秒", d.Hour, d.Minute, d.Second); | |
//時刻表示のフォント設定 | |
時刻.Font = new Font(label1.Font.FontFamily, 33); | |
//毎時間セットした分数に音を鳴らす | |
int timeSignal = 58; //基本は58分にセット | |
SetTime.Text = timeSignal.ToString(); //テキストボックスへ58を書き込む | |
string st = SetTime.Text.ToString(); //テキストボックスへ記入された文字列を読み取り | |
if (int.TryParse(st, out timeSignal))//int型にできたら下記ブロックを実行 | |
{ //現在時刻分数とセットタイムが同じ場合且つ0秒の場合に呼び出し | |
if (d.Minute == timeSignal && d.Second == 0) | |
{ | |
PlaySound(@"F:\unity\サウンド\効果音\鳥のさえずり.wav");//音を鳴らす | |
} | |
} | |
//指定した分数に一回だけ音を鳴らす | |
int setOneTime; | |
string sm = setMinute.Text.ToString(); //記入された文字列を読み取り | |
if (int.TryParse(sm, out setOneTime)) //int型にできたら下記ブロックを実行 | |
{//現在時刻分数とセットタイムが同じ場合且つ0秒の場合に呼び出し | |
if (d.Minute == setOneTime && d.Second == 0) | |
{ | |
PlaySound(@"F:\unity\サウンド\効果音\鳥のさえずり.wav"); //音を鳴らす | |
setMinute.ResetText(); //テキストボックスをクリアにする | |
} | |
} | |
} | |
int endTime; //テキストボックスへ入力した数値を代入する変数 | |
int nowTime; //時間をカウントする変数 | |
//カウントダウンタイマー | |
private void timerControl_Tick(object sender, EventArgs e) | |
{ | |
int RmainingTime; | |
nowTime++; | |
RmainingTime = endTime - nowTime; //残り時間を計算 | |
//残り時間をlabel(名前:textRmainingTime)へ表示 | |
textRmainingTime.Text = RmainingTime.ToString(); | |
//残り時間のフォント設定 | |
textRmainingTime.Font = new Font(textRmainingTime.Font.FontFamily, 20); | |
//カウントダウンが0になったら | |
if (endTime == nowTime) | |
{ //カウントダウンを止める | |
timerControl.Stop(); | |
//音を鳴らす 音素材のファイル場所を指定 =@"" | |
PlaySound(@"F:\unity\サウンド\効果音\流れ星.wav"); | |
//テキストをリセット | |
textSetTime.ResetText(); | |
nowTime = 0; //nowTimeをリセット | |
} | |
else | |
{ | |
StopSound(); //それ以外は音を鳴らさない | |
} | |
} | |
//タイマーのスタートメソッド | |
private void SetCountDownTimer() | |
{ | |
//入力された文字列を数値へ変換できればendTimeに数値を代入して実行 | |
if (int.TryParse(textSetTime.Text, out endTime)) | |
{ | |
nowTime = 0; //カウント時間を0にセットしてスタート | |
timerControl.Start(); | |
} | |
} | |
//スタートボタンを押してカウントダウンタイマーをスタート | |
private void buttonStart_Click(object sender, EventArgs e) | |
{ | |
SetCountDownTimer(); | |
} | |
//エンターキーを押してカウントダウンタイマーをスタート | |
private void textSetTime_KeyDown(object sender, KeyEventArgs e) | |
{ //Enterを押す&&入力が数字だった場合 | |
if ((e.KeyCode == Keys.Enter)) | |
{ | |
SetCountDownTimer(); | |
} | |
} | |
//カウントダウンタイマーテキストボックスへの入力イベント | |
private void textSetTime_TextChanged(object sender, EventArgs e) | |
{ | |
int num; | |
//入力された文字列がint型に変換できれば、タイマースタートボタンが有効 | |
this.buttonStart.Enabled = int.TryParse(this.textSetTime.Text, out num); | |
} | |
//WAVEファイルをSoundPlayerメソッドで再生する | |
private void PlaySound(string SoundFile) | |
{ //SoundPlayerのインスタンスを生成 | |
SoundPlayer player = new SoundPlayer(); | |
//音素材の場所を引数:SoundFileNameより取得 | |
player.SoundLocation = SoundFile; | |
player.Play(); | |
} | |
//SoundPlayerをオフにする | |
private void StopSound() | |
{ //playerが動いている時 | |
if (player != null) | |
{ | |
player.Stop(); | |
player.Dispose(); | |
player = null; | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment