Date クラスの直感的なインタフェース

Date クラスに直感的な (流れるような) インタフェースを実装してみた (ソースコード)。元ネタはこの一枚

実行サンプルはこんな感じ。

var d = new Date();
=> Wed Apr 30 2008 00:00:00 GMT+0900 (JST)
d.tomorrow();
=> Thu May 01 2008 00:00:00 GMT+0900 (JST)
d.nextTuesday();
=> Tue May 06 2008 00:00:00 GMT+0900 (JST)

流れるようなインタフェースなので、このようにも書ける。

d.tomorrow().lastWeek().nextYear().lastSunday().yesterday();
=> Sat Apr 18 2009 00:00:00 GMT+0900 (JST)

Google で "(new Date()).next()" を検索したら Datejs という良さそうなライブラリが引っかかった。他にも

が、直感的なインタフェースの参考になる。