日付けと時刻の関係について、いくつか考えてみました。
- 時刻と日付、点と期間、2009年7月1日(水)
- ダイアリー002 バーチカルには終日領域がない、2009年7月6日(月)
- 日付けと時刻の関係: 不連続な時刻、2009年7月8日(水)
これらを踏まえると、スケジューラー/カレンダーソフトの実装には、いくつかパターンが考えられます。…実はこれが、一連の記事の本題だったりします。
まず、スケジューラー/カレンダーでの日付けと時刻の関係は、終日領域の使い方に表れると思います。そこで、ここでは終日領域の使い方を中心に整理してみます。
まず、基本となる考え方は、次の組み合わせになるだろうと思います:
終日や連日のスケジュール(イベント)は、時刻指定のスケジュール(イベント)とは性質が違う。
性質の違うものは、表示する領域を分けよう。
長いスケジュールは邪魔だ。
だいたい24時間を境に、それを越えるスケジュールは時間目盛の外に出してしまいたい。
日付けをまたがる時刻指定のスケジュールは、そもそも不自然だ。
日付けをまたがって時刻指定のスケジュールが組まれていることは、人の自然な感覚にそぐわない。現代においても、そのようなことは少ない。
日付けをまたがる時刻指定のスケジュールを積極的に支援しよう。
実際問題として、日付けをまたがって時刻指定のスケジュールが組まれることはある。
これらは、次のような仕様に反映されるでしょう:
- 終日のスケジュールと時刻指定のスケジュールの表示場所を分ける/分けない。
- 期間が24時間以上のスケジュールは、分けて表示する/分けない。
- 日付けをまたがるスケジュールは、分けて表示する/分けない。
- 終日領域を用意する/しない
- 時刻メモリを、日付けをまたがって連続させる/日付ごとに区切る
これらの取捨選択で、実際には次のような実装パターンがあるようです。
パターン \ 仕様 | 1 | 2 | 3 | 4 |
---|---|---|---|---|
終日と時刻指定 |
○ |
○ |
○ |
|
24時間以上 |
○ |
-(*) |
||
日付けまたがり |
○ |
|||
終日領域 |
○ |
○ |
○ |
|
時刻目盛 |
○ |
(*): 日付けまたがりを分けると、結果的に24時間以上も分けることになる。
さて、わたしが使っているスケジューラーを例に、これらのパターンを見てみます。ただ、パターン3のは使っていないので、今回は、例を割愛します。
7/1 14:00~7/2 17:00に設定された「オリエンテーション」というスケジュールを例に取ります。
- タイトル:オリエンテーション
- 開始日時:2009-07-01 14:00
- 終了日時:2009-07-02 17:00
これは、期間の長さが24時間を越えますが、終日には設定されていません。
パターン1
終日領域を設けて、終日か?時刻指定か?だけで、スケジュールを表示する場所を変えます。終日と指定されたスケジュールは終日領域に表示します。スケジュールの期間が長くても、終日領域に追い出したりはしません。
iPhoneのカレンダーでは、このパターンで表示されますね。
→
パターン1
24時間を越える「オリエンテーション」をiPhoneで表示した例。7/1から7/2へ、日付けをめくってみると、終了は7/2 17:00になっている。
パターン1では、終日でなければ、期間が24時間を越えても、時刻目盛に表示される。
開始・終了の両方が終日、または両方が時刻指定という組み合わせのみ設定できます。どちらかだけ終日、どちらかだけ時刻指定という組み合わせで設定できません。
パターン2
「オリエンテーション」をGoogleカレンダーで表示した例。
24時間を越えるので、終日領域に。
パターン2
パターン1に加えて、期間が24時間以上のスケジュールも終日領域に追い出します。ただし、そのようなスケジュールがあることを、背景を暗くするなどで示したりもします。
Gooleカレンダーでは、このパターンで表示されますね。
iPhone OS 3.0では、iPhoneのカレンダーとGoogleカレンダーとが直接同期できるようになりました。同期してみると、「オリエンテーション」はGoogleカレンダー側では、終日領域に表示されます。
パターン3
パターン1に加えて、期間の長さにかかわらず、日付けをまたがるスケジュールは終日領域に表示します。
これの例は割愛します。
パターン4
日付けを越えて時刻目盛を連続してとり、そこにスケジュールを配置します。その代わり、終日領域を設けません。
xfy Plannerの「ダイアリー 002 バーチカル」リフィルは、このパターンです。
→
パターン4
「オリエンテーション」をxfy Plannerのダイアリー 002 バーチカルで表示した例。時刻に沿って連続して表示範囲を移動してみると、終了日は7/2 17:00になっている。
日付けを越えて、連続的に時間目盛をたどることができる。
☆~☆~☆~☆~☆~☆~☆~☆~☆~☆
上の3例は、どれも同じスケジュール「オリエンテーション」を表示しており、見え方やできる操作が違うだけだ、ということが重要です。これについては、またこんど。