Date-Utils
view release on metacpan or search on metacpan
lib/Date/Utils.pm view on Meta::CPAN
sub validate_month_name {
my ($self, $month_name) = @_;
my @caller = caller(0);
@caller = caller(2) if $caller[3] eq '(eval)';
my $months = $self->months;
Date::Exception::InvalidMonth->throw({
method => __PACKAGE__."::validate_month_name",
message => sprintf("ERROR: Invalid month name [%s].", defined($month_name)?($month_name):('')),
filename => $caller[1],
line_number => $caller[2] })
unless (defined($month_name) && ($month_name !~ /^[-+]?\d+$/) && (grep /$month_name/i, @{$months}[1..$#$months]));
}
=head2 validate_day($day)
Validates the given C<$day>. It has to be between 1 and 31.
=cut
sub validate_day {
my ($self, $day) = @_;
my @caller = caller(0);
@caller = caller(2) if $caller[3] eq '(eval)';
Date::Exception::InvalidDay->throw({
method => __PACKAGE__."::validate_day",
message => sprintf("ERROR: Invalid day [%s].", defined($day)?($day):('')),
filename => $caller[1],
line_number => $caller[2] })
unless (defined($day) && ($day =~ /^\d+$/) && ($day >= 1) && ($day <= 31));
}
=head2 validate_date($year, $month, $day)
Validates the given C<$year>, C<$month> and C<$day>.
=cut
sub validate_date {
my ($self, $year, $month, $day) = @_;
$self->validate_year($year);
$self->validate_month($month);
$self->validate_day($day);
}
=head1 AUTHOR
Mohammad S Anwar, C<< <mohammad.anwar at yahoo.com> >>
=head1 REPOSITORY
L<https://github.com/manwar/Date-Utils>
=head1 ACKNOWLEDGEMENTS
Entire logic is based on the L<code|http://www.fourmilab.ch/documents/calendar> written by John Walker.
=head1 SEE ALSO
=over 4
=item * L<Calendar::Bahai>
=item * L<Calendar::Gregorian>
=item * L<Calendar::Hebrew>
=item * L<Calendar::Hijri>
=item * L<Calendar::Julian>
=item * L<Calendar::Persian>
=item * L<Calendar::Saka>
=back
=head1 BUGS
Please report any bugs / feature requests to C<bug-date-utils at rt.cpan.org>, or
through the web interface at L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Date-Utils>.
I will be notified, and then you'll automatically be notified of progress on your
bug as I make changes.
=head1 SUPPORT
You can find documentation for this module with the perldoc command.
perldoc Date::Utils
You can also look for information at:
=over 4
=item * RT: CPAN's request tracker
L<http://rt.cpan.org/NoAuth/Bugs.html?Dist=Date-Utils>
=item * AnnoCPAN: Annotated CPAN documentation
L<http://annocpan.org/dist/Date-Utils>
=item * CPAN Ratings
L<http://cpanratings.perl.org/d/Date-Utils>
=item * Search CPAN
L<http://search.cpan.org/dist/Date-Utils/>
=back
=head1 LICENSE AND COPYRIGHT
Copyright (C) 2015 - 2017 Mohammad S Anwar.
( run in 2.792 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )