Time::Pieceはシンプルだったり直感的に操作出来るのがいいと思うけど、
タイムゾーン周りがマジカルだったりMySQLと連携しようと思うとTime::Piece::MySQLがepochの範囲外はParseしてくれなかったりなんか微妙だったので、Time::Piece::Plusなるものを書いた。
Time::Piece::Plus自体はTime::Pieceの子クラスなので、存在するメソッドはそのまま使える。
指定した日時の1日前、1日後を取得するメソッドやら、DateTimeにもあるtruncateメソッド(ただし自身を書き換えるのではなく新しくインスタンス生成する)、MySQLのDATE、DATETIME型との相互変換メソッドを用意している。
使い方は簡単で、use Time::Piece::PlusしてあとはTime::Pieceと同じように使うだけ。
https://github.com/takuji31/p5-Time-Piece-Plus
に公開してます。そのうちCPANにあげたい。