Advanced-Config
view release on metacpan or search on metacpan
lib/Advanced/Config/Date.pm view on Meta::CPAN
_date_manip_installed
_validate_date_str
is_leap_year
calc_hundred_year_date
calc_day_of_week
convert_hyd_to_date_str
calc_day_of_year
adjust_date_str
);
@EXPORT_OK = qw( );
my $global_cutoff_date = 30; # Defaults to 30 years in the future ...
# Thesee haahes tell which language modules are available ...
my %date_language_installed_languages;
my %date_manip_installed_languages;
# ========================================================================
# Detects if the optional Date::Language module is available ...
# If it's not installed, you'll be unable to swap languages using it!
BEGIN
{
eval {
local $SIG{__DIE__} = "";
require Date::Language;
# Find out where it's installed
my $loc = $INC{"Date/Language.pm"};
$loc =~ s/[.]pm$//;
my $search = File::Spec->catfile ($loc, "*.pm");
# Get's the list of languages supported.
foreach my $f ( bsd_glob ($search) ) {
my $module = (File::Spec->splitdir( $f ))[-1];
$module =~ s/[.]pm$//;
my %data = ( Language => $module,
Module => "Date::Language::${module}" );
$date_language_installed_languages{lc($module)} = \%data;
}
};
}
# ========================================================================
# Detects if the optional Date::Manip module is available ...
# If it's not installed, you'll be unable to swap languages using it!
BEGIN
{
eval {
local $SIG{__DIE__} = "";
require Date::Manip::Lang::index;
Date::Manip::Lang::index->import ();
foreach my $k ( sort keys %Date::Manip::Lang::index::Lang ) {
my $mod = $Date::Manip::Lang::index::Lang{$k};
my $lang = ( $k eq $mod ) ? ucfirst ($mod) : $mod;
my $module = "Date::Manip::Lang::${mod}";
my %data = ( Language => $lang, # A guess that's wrong sometimes
Module => $module );
$date_manip_installed_languages{lc ($k)} = \%data;
}
};
# -------------------------------------------------------------
# Proves sometimes the module name is different from the
# real language name.
# -------------------------------------------------------------
# foreach my $k ( sort keys %date_manip_installed_languages ) {
# printf STDERR ("Key (%s) Language (%s)\n", $k, $date_manip_installed_languages{$k}->{Language});
# }
}
# ========================================================================
# Hashes used to help validate/parse dates with ...
# Always keep the keys in lower case.
# Using the values from Date::Language::English for initialization ...
# Hard coded here in case Date::Language wasn't installed ...
# These hashes get rebuilt each time swap_language() is
# successfully called!
# ========================================================================
# Used by parse_date ();
my %last_language_edit_flags;
# Variants for the month names & days of month ...
# We hard code the initialization in case neither
# language module is installed locally.
my %Months;
my %Days;
BEGIN {
# Variants for the month names ...
%Months = (
# The USA Months spelled out ...
# Built from the @Date::Language::English::MoY array ...
"january" => 1, "february" => 2, "march" => 3,
"april" => 4, "may" => 5, "june" => 6,
"july" => 7, "august" => 8, "september" => 9,
"october" => 10, "november" => 11, "december" => 12,
# The USA Months using 3 char abreviations ("may" not repeated!)
# Built from the @Date::Language::English::MoYs array ...
"jan" => 1, "feb" => 2, "mar" => 3, "apr" => 4,
"jun" => 6, "jul" => 7, "aug" => 8,
"sep" => 9, "oct" => 10, "nov" => 11, "dec" => 12,
# Months as a numeric value. If all digits, leading zeros will
# be removed before it's used as a key.
"1" => 1, "2" => 2, "3" => 3, "4" => 4, "5" => 5, "6" => 6,
"7" => 7, "8" => 8, "9" => 9, "10" => 10, "11" => 11, "12" => 12
);
# variants for days of the month ...
%Days = (
"1" => 1, "2" => 2, "3" => 3, "4" => 4, "5" => 5,
"6" => 6, "7" => 7, "8" => 8, "9" => 9, "10" => 10,
( run in 1.450 second using v1.01-cache-2.11-cpan-e1769b4cff6 )