NAME
    DateTime::Format::Natural - Create machine readable date/time with
    natural parsing logic

SYNOPSIS
     use DateTime::Format::Natural;

     $parser = DateTime::Format::Natural->new;

     $dt = $parser->parse_datetime($date_string);
     @dt = $parser->parse_datetime_duration($date_string);

DESCRIPTION
    "DateTime::Format::Natural" takes a string with a human readable
    date/time and creates a machine readable one by applying natural parsing
    logic.

METHODS
  new
    Creates a new "DateTime::Format::Natural" object. Arguments to "new()"
    are options and not necessarily required.

     $parser = DateTime::Format::Natural->new(
               lang    => '[en|de]',
               format  => 'mm/dd/yy',
               daytime => { morning   => 06,
                            afternoon => 13,
                            evening   => 20,
                          },
     );

    lang
        Contains the language selected, currently limited to "en" (english)
        & "de" (german). Defaults to '"en"'.

    format
        Specifies the format of numeric dates, defaults to '"d/m/y"'.

    daytime
        A hash consisting of specific hours given for peculiar daytimes.
        Daytimes may be selectively changed.

  parse_datetime
    Creates a "DateTime" object from a human readable date/time string.

     $dt = $parser->parse_datetime($date_string);

     $dt = $parser->parse_datetime(
           string => $date_string,
           debug  => 1,
     );

    string
        The date string.

    debug
        Boolean value indicating debugging mode.

        If debugging is enabled, each token that is analysed will be output
        to STDOUT with a trailing newline appended.

    Returns a DateTime object.

  parse_datetime_duration
    Creates one or more "DateTime" object(s) from a human readable date/time
    string which may contain timespans/durations. 'Same' interface & options
    as parse_datetime(), but must be explicitly called in list context.

     @dt = $parser->parse_datetime_duration($date_string);

     @dt = $parser->parse_datetime_duration(
           string => $date_string,
           debug  => 1,
     );

EXAMPLES
    See the modules "DateTime::Format::Natural::Lang::*" for a overview of
    valid input.

CREDITS
    Thanks to Tatsuhiko Miyagawa for the initial inspiration. See Miyagawa's
    journal entry <http://use.perl.org/~miyagawa/journal/31378> for more
    information.

    Furthermore, thanks to (in order of appearance) who have contributed
    valuable suggestions & patches:

     Clayton L. Scott
     Dave Rolsky
     CPAN Author 'SEKIMURA'
     mike (pulsation)
     Mark Stosberg
     Tuomas Jormola
     Cory Watson
     Urs Stotz

SEE ALSO
    DateTime, Date::Calc, <http://datetime.perl.org>

AUTHOR
    Steven Schubiger <schubiger@cpan.org>

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

    See <http://www.perl.com/perl/misc/Artistic.html>

