らきろぐ(画像作成中)

Lucky Log

2010年04月

日曜日月曜日火曜日水曜日木曜日金曜日土曜日




01
日記
02
日記
03
日記
04
日記
05
日記
06
日記
07
日記
080910
11121314151617
181920
日記
21
日記
2223
日記
24
252627282930
前:2010年03月 次:2010年05月

What's New?

No.1385: Perlでカレンダー復旧


tags

Category: Web Programing

投稿者 Lakililac 投稿日時 2010/04/20 23:18:24 B


TVアニメ「AngelBeats!」応援バナー kudo_wafter Rewrite - Key

次の記事: ウェブサイト開設9周年!?

2010年04月20日の日記の概要

Article Image

かれんだーを作った。

カレンダー機能復元しました

以前のブログシステムtb.cgiには実装されていたけれど、いつの間にか仕分けの対象とされて削除されていた機能があります。その一つがカレンダー機能です。


公開を停止していたのには理由があります。サーバーの移転の際に、ブログの記事URLの命名規則を見直し、YYYYMMDD.htmlからentry_id.htmlに変更していたためです。

そんなカレンダーが本日より、再実装されました。


このカレンダー機能が実装されるまでには、単に私のPerlのライブラリからのコピペでは済まず、数々の試行錯誤があったのですが、内情を書くとへたれプログラマであることを自ら暴露するだけに止まらず、本格的にダメなコーディングしてることがばれて仕舞います。


なので、やったことを大雑把に、曖昧に書いてみる。


  1. エントリー毎に生成する年月を取得する。
  2. 当該年月の末日(28,29,30,31日)を取得する。 - 閏年の計算
  3. 当該年月の開始日の曜日を計算する。 - ツェラーの公式
  4. 空白行挿入(開始日まで、末日以降)
  5. 前月、翌月へのリンク
  6. 日記記事が存在する日付には日記へのリンクを貼る


メモ

1.にて。

最初、全ての記事でカレンダーを毎回生成するという愚行、奇行に走る。

すでに造ったことのある年月のカレンダーは造らないようにすることで計算回数が1380→108回に。


2.~5.

特記事項なし。


6.が少し悩み所でした。

結局、大量のYYYYMMDD.htmlを作成しておいて、ファイルの存否を判断するという泥臭い方法をとりました。entry_idとYYYYMMDDは多対一の対応なのですが。そのうち日付毎に何かのデータ解析するのに使えたらいいなぁ。ぐらいのノリで。


ゆくゆくは予定ない日を公開する程度のカレンダー機能になれば良いかと思っております。

予定のある日と内容は公開しませんが。


あとは.ics形式のデータに対応できたら格好良いんだけど、面倒くさそうなので却下でしょう。

Trackback URL http://www.laki-web.net/system/cgi/luckylog.cgi/1385

Comment/Trackbackの受付を終了しました.

.

関連記事



Archives



検索

Keywords

key(58), 麻枝准(36), お勧め音楽(27), 高校編(22), ksl(20), ポケモン(17), 中学校編(15), clannad(14), 薬学(14), 折戸伸治(13)

Recent Comments

more

最近再生した曲(今週)

Lakililac's Last.fm

応援サイト一覧

yukar Ram TVアニメ「AngelBeats!」応援バナー

総アクセス数: 個別アクセス数: