カレンダー

2021/11
 
    
       

広告

Twitter

記事検索

ランダムボタン

奥深いカレンダーの世界

by 唐草 [2021/11/13]



 この2週間ぐらいカレンダーWebアプリの開発に注力していた。カレンダーなんて紙で作れる程度の情報量しか持っていないし、はるか昔に作ったこの日記のメニューにもカレンダーあhある。仕様も理解しているし、初めての作成でもないので、何の苦もなく簡単に作れるだろうと思っていた。ところが、実際に作り始めてみるとなかなか奥深いものだということが明らかになった。
 1ヶ月は何週間?と聞かれたら普通の感覚だと約4週間と答えるだろう。実際には30日以上あるのでジャスト4週間の28日だと少し足が出ることも分かっている。だから、1ヶ月分のカレンダーを用意しようと思ったら5週間分の枠が必要になる。と思いがちだが、これではまだ不十分。第1週が2日以下(1日が土曜日とか)の場合は、月の最終日が6週目に突入する可能性がある。だから、固定枠のカレンダーを用意するのであれば6段必要になるし、動的な枠にするのであれば、5段と6段に(できれば2月曜の4段にも)対応するフレキシブルな設定が必要になる。
 また、11/11から11/15までのように数日間にまたがった予定をカレンダーに表示するのもなかなか面倒。同一週で収まるのなら期間をまたぐ長い線を1本引くだけでいい。でも、週をまたぐとなると話は別。データ的には1つの予定だが、カレンダー上の線は2本になる。厄介なことに予定の開始日が前月ということもある。ただ単にその月に開始する予定をピックアップするだけでは、月跨ぎの予定が抜けてしまう。
 同日に複数の予定があるときは更に面倒。1行1予定としても数が多すぎるとカレンダーの枠を超えてしまう。また、先に述べたような期間の長い先約が入っている場合もある。他の予定と重ならないように配慮しつつも、不自然な空欄が出ないように隙間を埋める必要もある。
 深い考えなしに機能を追加すると、途端に不自然なカレンダーになってしまう。普段当たり前のように使っているカレンダー(紙を含む)を影で支えている様々な工夫に感服しっぱなしの開発となった。