NAME
    Random::Day - Class for random day generation.

SYNOPSIS
     use Random::Day;

     my $obj = Random::Day->new(%params);
     my $dt = $obj->get;
     my $dt = $obj->random;
     my $dt = $obj->random_day($day);
     my $dt = $obj->random_day_month($day, $month);
     my $dt = $obj->random_day_month_year($day, $month, $year);
     my $dt = $obj->random_month($month);
     my $dt = $obj->random_month_year($month, $year);
     my $dt = $obj->random_year($year);

METHODS
  "new"
     my $obj = Random::Day->new(%params);

    Constructor.

    *       "day"

            Day.

            Default value is undef.

    *       "dt_from"

            DateTime object from.

            Default value is DateTime object for 1900 year.

    *       "dt_to"

            DateTime object to.

            Default value is DateTime object for 2050 year.

    *       "month"

            Month.

            Default value is undef.

    *       "year"

            Year.

            Default value is undef.

  "get"
     my $dt = $obj->get;

    Get random date defined by constructor parameters.

    Returns DateTime object for date.

  "random"
     my $dt = $obj->random;

    Get random date.

    Returns DateTime object for date.

  "random_day"
     my $dt = $obj->random_day($day);

    Get random date defined by day.

    Returns DateTime object for date.

  "random_day_month"
     my $dt = $obj->random_day_month($day, $month);

    Get random date defined by day and month.

    Returns DateTime object for date.

  "random_day_month_year"
     my $dt = $obj->random_day_month_year($day, $month, $year);

    Get date defined by day, month and year.

    Returns DateTime object for date.

  "random_month"
     my $dt = $obj->random_month($month);

    Get random date defined by month.

    Returns DateTime object for date.

  "random_month_year"
     my $dt = $obj->random_month_year($month, $year);

    Get random date defined by month and year.

    Returns DateTime object for date.

  "random_year"
     my $dt = $obj->random_year($year);

    Get random date defined by year.

    Returns DateTime object for date.

ERRORS
     new():
             From Class::Utils::set_params():
                     Unknown parameter '%s'.

     random_day():
             Day cannot be a zero.
             Day isn't number.

     random_day_month():
             Cannot create DateTime object.
             Day cannot be a zero.
             Day isn't number.

     random_day_month_year():
             Cannot create DateTime object.
                     Error: %s
             Day cannot be a zero.
             Day isn't number.

     random_month():
             Cannot create DateTime object.
                     Error: %s

     random_month_year():
             Cannot create DateTime object.
                     Error: %s

     random_year():
             Year is greater than maximal year.
                     Expected year: %s
                     Maximal year: %s
             Year is lesser than minimal year.
                     Expected year: %s
                     Minimal year: %s

EXAMPLE
     use strict;
     use warnings;

     use Random::Day;

     # Object.
     my $obj = Random::Day->new;

     # Get date.
     my $dt = $obj->get;

     # Print out.
     print $dt->ymd."\n";

     # Output like:
     # \d\d\d\d-\d\d-\d\d

DEPENDENCIES
    Class::Utils, DateTime, DateTime::Event::Random,
    DateTime::Event::Recurrence, English, Error::Pure.

SEE ALSO
    Data::Random
        Perl module to generate random data

    Random::Day::InTheFuture
        Class for random day generation in the future.

    Random::Day::InThePast
        Class for random day generation in the past.

REPOSITORY
    <https://github.com/michal-josef-spacek/Random-Day>

AUTHOR
    Michal Josef Špaček <mailto:skim@cpan.org>

    <http://skim.cz>

LICENSE AND COPYRIGHT
    © 2013-2023 Michal Josef Špaček

    BSD 2-Clause License

VERSION
    0.13