DateTime-Calendar-FrenchRevolutionary
view release on metacpan or search on metacpan
lib/DateTime/Calendar/FrenchRevolutionary.pm view on Meta::CPAN
$VERSION = '0.17';
use Params::Validate qw(validate SCALAR BOOLEAN OBJECT);
use Roman;
use DateTime;
use DateTime::Calendar::FrenchRevolutionary::Locale;
my $BasicValidate =
{ year => { type => SCALAR },
month => { type => SCALAR, default => 1,
callbacks =>
{ 'is between 1 and 13' =>
sub { $_[0] >= 1 && $_[0] <= 13 }
},
},
day => { type => SCALAR, default => 1,
callbacks =>
{ 'is between 1 and 30' =>
sub { $_[0] >= 1 && $_[0] <= 30 },
},
},
hour => { type => SCALAR, default => 0,
callbacks =>
{ 'is between 0 and 9' =>
sub { $_[0] >= 0 && $_[0] <= 9 },
},
},
minute => { type => SCALAR, default => 0,
callbacks =>
{ 'is between 0 and 99' =>
sub { $_[0] >= 0 && $_[0] <= 99 },
},
},
second => { type => SCALAR, default => 0,
callbacks =>
{ 'is between 0 and 99' =>
sub { $_[0] >= 0 && $_[0] <= 99 },
},
},
abt_hour => { type => SCALAR, default => 0,
callbacks =>
{ 'is between 0 and 23' =>
sub { $_[0] >= 0 && $_[0] <= 23 },
},
},
abt_minute => { type => SCALAR, default => 0,
callbacks =>
{ 'is between 0 and 59' =>
sub { $_[0] >= 0 && $_[0] <= 59 },
},
},
abt_second => { type => SCALAR, default => 0,
callbacks =>
{ 'is between 0 and 61' =>
sub { $_[0] >= 0 && $_[0] <= 61 },
},
},
nanosecond => { type => SCALAR, default => 0,
callbacks =>
{ 'cannot be negative' =>
sub { $_[0] >= 0 },
}
},
locale => { type => SCALAR | OBJECT,
callbacks =>
{ "only 'fr', 'en', 'es' and 'it' possible" =>
sub { ($_[0] eq 'fr') or ($_[0] eq 'en')
or ($_[0] eq 'es')
or ($_[0] eq 'it')
or ref($_[0]) =~ /(?:en|es|fr|it)$/ },
},
default => DefaultLocale() },
};
my $NewValidate =
{ %$BasicValidate,
time_zone => { type => SCALAR | OBJECT,
callbacks =>
{ "only 'floating' possible" =>
sub { ($_[0] eq 'floating') or ref($_[0]) and $_[0]->is_floating },
},
default => 'floating' },
};
my $Lastday_validate = { %$BasicValidate };
delete $Lastday_validate->{day};
# Constructors
sub new {
( run in 0.985 second using v1.01-cache-2.11-cpan-9b1e4054eb1 )