NAME
   Time::Piece::Plus - Subclass of Time::Piece with some useful method

SYNOPSIS
     use Time::Piece::Plus;

     my $now = localtime();
     my $today = Time::Piece::Plus->today;

     #As class method
     my $today     = Time::Piece::Plus->today;
     my $yesterday = Time::Piece::Plus->yesterday;
     my $tomorrow  = Time::Piece::Plus->tomorrow;

     #As instance method
     my $time = Time::Piece::Plus->yesterday;
     my $two_days_ago = $time->yesterday;
     my $today = $time->tomorrow;

     #returns hour truncated object
     $time->truncate(to => 'day');

     #parse MySQL DATE
     my $gm_date    = Time::Piece::Plus->parse_mysql_date(str => "2011-11-26", as_localtime => 0);
     my $local_date = Time::Piece::Plus->parse_mysql_date(str => "2011-11-26", as_localtime => 1);
     #default is localtime
     my $local_date = Time::Piece::Plus->parse_mysql_date(str => "2011-11-26");

     #parse MySQL DATETIME
     my $gm_datetime    = Time::Piece::Plus->parse_mysql_datetime(str => "2011-11-26 23:28:50", as_localtime => 0);
     my $local_datetime = Time::Piece::Plus->parse_mysql_datetime(str => "2011-11-26 23:28:50", as_localtime => 1);
     #default is localtime
     my $datetime       = Time::Piece::Plus->parse_mysql_datetime(str => "2011-11-26 23:28:50");

     #calculete
     my $date = localtime();
     $date = $date->add(10);
     $date = $date->add(Time::Seconds->new(10);
     $date = $date->add(days => 1, hours => 12);
     $date = $date + 3600;

     $date = $date->subtract(10);
     $date = $date->subtract(Time::Seconds->new(10);
     $date = $date->subtrace(days => 1, hours => 12);
     $date = $date - 3600;
     $time_seconds = $date - Time::Piece::Plus->today;

DESCRIPTION
   Time::Piece::Plus is subclass of Time::Piece with some useful method.

METHODS
 today
   If called as a class method returns today. Also, if called as an
   instance method returns the day. And time is cut.

 yesterday
   If called as a class method returns yesterday. Also, if called as an
   instance method returns the previous day. And time is cut.

 tomorrow
   If called as a class method returns tomorrow. Also, if called as an
   instance method returns the next day. And time is cut.

 truncate
   Cut the smaller units than those specified. For example, "day" if you
   will cut the time you specify. 2011-11-26 02:13:22 -> 2011-11-26
   00:00:00 Each unit is a minimum cut.

 parse_mysql_date
   Parse MySQL DATE string like "YYYY-mm-dd". as_localtime is optional,
   default is 1.

 parse_mysql_datetime
   Parse MySQL DATETIME string like "YYYY-mm-dd HH:MM:SS". as_localtime is
   optional, default is 1.

 mysql_date
   Format MySQL DATE string like "YYYY-mm-dd". If you call a class method
   and returns the format today. Also, if called as an instance method
   returns the date and format of the instance.

 mysql_datetime
   Format MySQL DATE string like "YYYY-mm-dd HH:MM:SS". If you call a class
   method and returns the format now. Also, if called as an instance method
   returns the date and format of the instance.

 add(Int|Time::Seconds|Hash)
 subtract(Int|Time::Seconds|Time::Piece|Hash)
   Calculate and return new Time::Piece::Plus or Time::Seconds object using
   specified argument. If you specify Int, Time::Seconds or
   Time::Piece(::Plus)?, behavior is same as original Time::Piece. Operator
   overload is also available.

   If you specify Hash(not HashRef), behavior is similar to DateTime's
   these methods. But, they don't change object itself and returns new
   object. Available Hash keys are as follows, and Hash values are Int.

   seconds
   hours
   days
   months
   years

AUTHOR
   Nishibayashi Takuji <takuji {at} senchan.jp>

SEE ALSO
   Time::Piece,Time::Piece::MySQL,DateTime

LICENSE
   This library is free software; you can redistribute it and/or modify it
   under the same terms as Perl itself.