パソコンで作業をしているとき、時間を忘れてしまうことはありませんか?

作業をするときはただ時間をかければよいというものではなく、適度に休憩をすることも必要です。そのほうが休憩時間をいれたとしても早く作業を終わらせることができます。

ポモドーロ・テクニックとは?

「ポモドーロ・テクニック」という言葉を聞いたことがあるでしょうか。これは時間管理術のひとつで、仕事や勉強、家事などのタスクを25分間続けた後に5分の休憩を取り、そのサイクルを最大4回続けるというものです。

ポモドーロとはイタリア語で「トマト」のことです。この時間管理術を考案したのはイタリア出身のフランチェスコ・シリロという人物なのですが、彼はトマト型のキッチンタイマーをつかって時間を区切って試験勉強をしたといわれています。

シリロは休憩時間、持続可能な回数などを研究し続け、人間がもつ最大限の生産性と効率性を引き出すことができる時間が「25分間続けた後に5分の休憩」であるという結論を得ることになったのです。

ではポモドーロ・テクニックを実践することができるアプリをつくってみましょう。(ここまでは全部前振りでした) ポモドーロ・テクニックに関するネタ元 ⇒ ポモドーロ・テクニック:世界が実践する時間管理術はこうして生まれた | ニューズウィーク日本版 オフィシャルサイト

アプリの作成

以下のような動作をするアプリを作成します。

[開始ボタン]を押す
25分後に休憩
[休憩ボタン]を押す
5分後に作業再開
[開始ボタン]を押す

これを4回繰り返す
そのあと20~30分の休憩

[開始ボタン]をおすと「○時○分まで作業をしてください」
25分経つと「休憩してください」
[休憩ボタン]を押すと「○時○分まで休憩してください」
5分経つと「○回目の作業を開始してください」
これらを4回繰り返すと「30分の休憩をしてください」と表示させる

タイマーを使う

作業を開始して25分が経過したかどうか、休憩を開始してから5分が経過したかどうかはタイマーをつかって調べます。開始時刻にタイマーはスタートし、定められた時間になるとメッセージを表示してタイマーは止まります。

最初は[開始ボタン]ボタンしか押せないようにしておきます。そして[開始ボタン]をおすと[開始ボタン]も[休憩ボタン]も押せなくなり、「○時○分まで作業に集中しましょう」と表示されます。

背景色は目に優しい緑色です。笑

コンストラクタとフィールド変数

まずタイマーをふたつ作成します。そして10秒ごとに現在時刻を調べて、必要ならメッセージを表示させます。

イベントハンドラ

これは[作業開始]ボタンがクリックされたときのイベントハンドラです。

[作業開始]ボタンがクリックされるとタイマーが起動します。これはそのタイマー関連のイベントハンドラです。

休憩時間になると[休憩する]ボタンが押せるようになります。これは[休憩する]ボタンが押されたときのイベントハンドラです。1セット終わったら長めの休憩時間をとるようにしています。

[休憩する]ボタンがクリックされると休憩時間を管理するためのタイマーが起動します。これはそのタイマー関連のイベントハンドラです。

うっかり終了させないようにする

これだけでもよいのですが、作業中にうっかりアプリを終了させてしまうかもしれません。そこで右上の「×」ボタンをクリックしても終了しないようにします。「×」ボタンをクリックするとタスクトレイに入ります。

これで「×」ボタンをクリックしてもフォームが見えなくなるだけでアプリが終了することはありません。ただこれでは本当に終了させたいときに終了させることができません。

まずNotifyIconを追加します。そして以下のように通知アイコンをクリックすれば非表示になっているフォームを再表示させることができるようになります。

本当に終了させたいときは「×」ボタンをクリックする以外の方法を用意する必要があります。isEndというフラグを使ってメニューで[終了]が選択されたときにisEnd = true;とします。そしてアプリケーションを終了させるためにApplication.Exit();を実行します。すると終了させることができます。

休憩の時間になったときにフォームが最小化されていたり非表示になっていると、メッセージが表示されても気づくことができません。メッセージを表示するときはフォームを見えるように表示させます。