The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Mo::utils::Date - Mo date utilities.

SYNOPSIS

use Mo::utils::Date qw(check_date);

check_date($self, $key);
check_date_dmy($self, $key);
check_date_ddmmyy($self, $key);
check_date_order($self, $key1, $key2);

DESCRIPTION

Utilities for checking of data values.

SUBROUTINES

check_date

check_date($self, $key);

Since version 0.01. Described functionality since version 0.02.

Check parameter defined by $key which is date and that date isn't greater than actual year.

Possible dates: - YYYY-MM-DD - YYYY-M-D - YYYY-MM - YYYY-M - YYYY

Put error if check isn't ok.

Returns undef.

check_date_dmy

check_date_dmy($self, $key);

Since version 0.02. Described functionality since version 0.03.

Check parameter defined by $key which is date in right format.

Possible dates. - D.M.YYYY - DD.MM.YYYY

Date is checked via DateTime if is real.

Put error if check isn't ok.

Returns undef.

check_date_ddmmyy

check_date_ddmmyy($self, $key);

Since version 0.03.

Check parameter defined by $key which is date in ddmmyy format.

Possible dates. - DDMMYY

Function is working only for date years > 2000.

Date is checked via DateTime if it is real.

Put error if check isn't ok.

Returns undef.

check_date_order

check_date_order($self, $key1, $key2);

Since version 0.01. Described functionality since version 0.04.

Check if date with $key1 is lesser than date with $key2.

Possible date formats:

  • YYYY-MM-DD

  • -YYYY-MM-DD

  • YEAR

  • DateTime object

Put error if check isn't ok.

Returns undef.

ERRORS

check_date():
        Parameter '%s' for date is in bad format.
                Value: %s
        Parameter '%s' has year greater than actual year.

check_date_dmy():
        Parameter '%s' for date is in bad format.
                Value: %s
        Parameter '%s' is bad date.
                Value: %s
                DateTime error: %s

check_date_ddmmyy():
        Parameter '%s' for date is in bad date format.
                Value: %s
        Parameter '%s' is bad date.
                Value: %s
                DateTime error: %s

check_date_order():
        Cannot parse date/time string.
                Value: %s
        Cannot construct DateTime object from date.
                Value: %s
                DateTime error: %s
        Parameter '%s' has date greater or same as parameter '%s' date.

EXAMPLE1

use strict;
use warnings;

use Mo::utils::Date qw(check_date);

my $self = {
        'key' => '2022-01-15',
};
check_date($self, 'key');

# Print out.
print "ok\n";

# Output:
# ok

EXAMPLE2

use strict;
use warnings;

use Error::Pure;
use Mo::utils::Date qw(check_date);

$Error::Pure::TYPE = 'Error';

my $self = {
        'key' => 'foo',
};
check_date($self, 'key');

# Print out.
print "ok\n";

# Output like:
# #Error [..Utils.pm:?] Parameter 'key' is in bad format.

EXAMPLE3

use strict;
use warnings;

use Mo::utils::Date qw(check_date_ddmmyy);

my $self = {
        'key' => '151120',
};
check_date_ddmmyy($self, 'key');

# Print out.
print "ok\n";

# Output:
# ok

EXAMPLE4

use strict;
use warnings;

use Error::Pure;
use Mo::utils::Date qw(check_date_ddmmyy);

$Error::Pure::TYPE = 'Error';

my $self = {
        'key' => 'foo',
};
check_date_ddmmyy($self, 'key');

# Print out.
print "ok\n";

# Output like:
# #Error [..Utils.pm:?] Parameter 'key' for date is in bad format.

DEPENDENCIES

DateTime, English, Exporter, Error::Pure, Readonly.

SEE ALSO

Mo::utils

Mo utilities.

REPOSITORY

https://github.com/michal-josef-spacek/Mo-utils-Date

AUTHOR

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

http://skim.cz

LICENSE AND COPYRIGHT

© Michal Josef Špaček 2022-2024

BSD 2-Clause License

VERSION

0.04