[![Build Status](https://travis-ci.org/karupanerura/DateTimeX-Moment.svg?branch=master)](https://travis-ci.org/karupanerura/DateTimeX-Moment) # NAME DateTimeX::Moment - EXPERIMENTAL DateTime like interface for Time::Moment # SYNOPSIS use DateTimeX::Moment; $dt = DateTimeX::Moment->new( year => 1964, month => 10, day => 16, hour => 16, minute => 12, second => 47, nanosecond => 500000000, time_zone => 'Asia/Taipei', ); $dt = DateTimeX::Moment->from_epoch( epoch => $epoch ); $dt = DateTimeX::Moment->now; # same as ( epoch => time() ) $year = $dt->year; $month = $dt->month; # 1-12 $day = $dt->day; # 1-31 $dow = $dt->day_of_week; # 1-7 (Monday is 1) $hour = $dt->hour; # 0-23 $minute = $dt->minute; # 0-59 $second = $dt->second; # 0-61 (leap seconds!) $doy = $dt->day_of_year; # 1-366 (leap years) $doq = $dt->day_of_quarter; # 1.. $qtr = $dt->quarter; # 1-4 # all of the start-at-1 methods above have corresponding start-at-0 # methods, such as $dt->day_of_month_0, $dt->month_0 and so on $ymd = $dt->ymd; # 2002-12-06 $ymd = $dt->ymd('/'); # 2002/12/06 $mdy = $dt->mdy; # 12-06-2002 $mdy = $dt->mdy('/'); # 12/06/2002 $dmy = $dt->dmy; # 06-12-2002 $dmy = $dt->dmy('/'); # 06/12/2002 $hms = $dt->hms; # 14:02:29 $hms = $dt->hms('!'); # 14!02!29 $is_leap = $dt->is_leap_year; # these are localizable, see Locales section $month_name = $dt->month_name; # January, February, ... $month_abbr = $dt->month_abbr; # Jan, Feb, ... $day_name = $dt->day_name; # Monday, Tuesday, ... $day_abbr = $dt->day_abbr; # Mon, Tue, ... # May not work for all possible datetime, see the docs on this # method for more details. $epoch_time = $dt->epoch; $rhs = $dt + $duration_object; $dt3 = $dt - $duration_object; $duration_object = $dt - $rhs; $dt->set( year => 1882 ); $dt->set_time_zone( 'America/Chicago' ); $dt->set_formatter( $formatter ); # BENCHMARK `author/benchmark.pl`: new() Benchmark: timing 100000 iterations of datetime, moment... datetime: 4 wallclock secs ( 4.06 usr + 0.01 sys = 4.07 CPU) @ 24570.02/s (n=100000) moment: 1 wallclock secs ( 0.62 usr + 0.01 sys = 0.63 CPU) @ 158730.16/s (n=100000) Rate datetime moment datetime 24570/s -- -85% moment 158730/s 546% -- ---------------------------------------- now() Benchmark: timing 100000 iterations of datetime, moment... datetime: 4 wallclock secs ( 4.38 usr + 0.01 sys = 4.39 CPU) @ 22779.04/s (n=100000) moment: 1 wallclock secs ( 0.59 usr + 0.00 sys = 0.59 CPU) @ 169491.53/s (n=100000) Rate datetime moment datetime 22779/s -- -87% moment 169492/s 644% -- ---------------------------------------- from_epoch() Benchmark: timing 100000 iterations of datetime, moment... datetime: 4 wallclock secs ( 4.27 usr + 0.01 sys = 4.28 CPU) @ 23364.49/s (n=100000) moment: 1 wallclock secs ( 0.63 usr + 0.00 sys = 0.63 CPU) @ 158730.16/s (n=100000) Rate datetime moment datetime 23364/s -- -85% moment 158730/s 579% -- ---------------------------------------- calculate() Benchmark: timing 100000 iterations of datetime, moment... datetime: 20 wallclock secs (20.30 usr + 0.04 sys = 20.34 CPU) @ 4916.42/s (n=100000) moment: 1 wallclock secs ( 1.07 usr + 0.00 sys = 1.07 CPU) @ 93457.94/s (n=100000) Rate datetime moment datetime 4916/s -- -95% moment 93458/s 1801% -- ---------------------------------------- # DESCRIPTION TODO: write it # METHODS TODO: write it # LICENSE Copyright (C) karupanerura. This is free software, licensed under: The Artistic License 2.0 (GPL Compatible) # AUTHOR karupanerura