カレンダー兼スケジューラーほぼ完成


 昨日の夜に作り始めたカレンダー兼スケジューラーがほぼ完成しました。
 必要な機能はすべて完成。基本機能は昨日書いたとおり。

  • 縦一列に、むこう一年間のスケジュールを表示するようにしました。これは「この日まであと何日」ということを把握しやすくするため。わてのおしごとは「曜日」や「日付」よりも「期間」の方が重要なので。
  • 「今日から何日前」「今日から何日後」からの表示も可能です。これで過去の情報も表示できます。
  • スケジュール表示条件の指定はとても細かく指定できます。詳細は以下に。
  • スケジュールに時間は含めません。基本は日にちで指定。そのおかげで日にちをまたいだ範囲指定や深夜のスケジュールが立てやすくなりました。
  • スケジュールの細かい内容は表示せずタイトルのみ表示。詳細は<A TITLE="ここ">に記述することでポップアップ表示できるようにしました。
  • スケジュールをクリックすると別ウィンドウで詳細が表示されるようにしました。
  • スケジュールはそれぞれ色を自由に変えることができます。
  • スケジュールには「優先順位」を付けて、それで左右のソートを行います。
  • スケジュールはXMLに記述します。なのでスケジュールの入力及び修正はXMLを直接編集します。
  • XMLファイルは複数のファイルに分割可能です。たとえば「用事」「本」「アニメ」等、それぞれ別のXMLファイルにしています。
  • ローカルでしか見られませんのでみなさんは使えません(爆)。*1

 特にキモなのが「条件指定」。以下の条件を複数設定することができ、AND結合します。

  • 特定の日。
  • ある一定期間。2006/07/01〜2006/09/31等。
  • 特定の曜日(複数指定可能)。
  • 特定の日以外(つまり、この指定した日だけ表示しない)。

 以上の設定を複数適用することで、

  • 2006/04/13〜2006/10/26の間の毎週木曜日に表示。ただし2006/09/28は表示しない。
  • 2006/09/28には別スケジュールを表示する。

 ということができ、こうすることで

  • アニメのスケジュール(ここでは「24:30 ザ・サード」)を1クール期間の毎週木曜日に表示。
  • ただし放送時刻が変わる2006/09/28は表示せず、変更後のスケジュール(「24:45 ザ・サード」)を作ってこの日に表示させる。

 ということが可能になるわけです。これのおかげでアニメの管理がかなり楽になるかなー。もちろん普通のスケジューラーとして使えるし。
 それにしてもPHPって便利だわ……これJavaで作ってたら結構大変だったろうなぁ……この作りやすさははまる。

*1:ならなぜこんなふうに書くかというと、ほら、こういうの書いとかないと、ずっと寝てるか遊んでると思われちゃうから(爆)。