X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/15f021a67aa7e26458a3fbac8efe89ef9c0b0657..38e08b2f3ae7b386eb22f2475077cf1c3a1711a7:/SL/Locale.pm diff --git a/SL/Locale.pm b/SL/Locale.pm index bb95e7309..7c524e984 100644 --- a/SL/Locale.pm +++ b/SL/Locale.pm @@ -232,8 +232,8 @@ sub lang_to_locale { my $requested_locale; $requested_locale = 'de' if $requested_lang =~ m/^_(de|deu|ger)/i; - $requested_locale = 'fr' if $requested_lang =~ m/^_(en|uk|us|gr)/i; - $requested_locale = 'en' if $requested_lang =~ m/^_fr/i; + $requested_locale = 'en' if $requested_lang =~ m/^_(en|uk|us|gr)/i; + $requested_locale = 'fr' if $requested_lang =~ m/^_fr/i; $requested_locale ||= 'de'; return $requested_locale; @@ -396,6 +396,28 @@ sub parse_date_to_object { return $yy && $mm && $dd ? DateTime->new(year => $yy, month => $mm, day => $dd) : undef; } +sub format_date_object { + my ($self, $datetime, %params) = @_; + + my $format = $::myconfig{dateformat} || 'yyyy-mm-dd'; + $format =~ s/yyyy/\%Y/; + $format =~ s/yy/\%y/; + $format =~ s/mm/\%m/; + $format =~ s/dd/\%d/; + + my $precision = $params{precision} || 'day'; + $precision =~ s/s$//; + my %precision_spec_map = ( + second => '%H:%M:%S', + minute => '%H:%M', + hour => '%H', + ); + + $format .= ' ' . $precision_spec_map{$precision} if $precision_spec_map{$precision}; + + return $datetime->strftime($format); +} + sub reformat_date { $main::lxdebug->enter_sub(2); @@ -516,3 +538,140 @@ sub get_local_time_zone { } 1; +__END__ + +=pod + +=encoding utf8 + +=head1 NAME + +Locale - Functions for dealing with locale-dependant information + +=head1 SYNOPSIS + + use Locale; + use DateTime; + + my $locale = Locale->new('de'); + my $now = DateTime->now_local; + print "Current date and time: ", $::locale->format_date_object($now, precision => 'second'), "\n"; + +=head1 OVERVIEW + +TODO: write overview + +=head1 FUNCTIONS + +=over 4 + +=item C + +TODO: Describe date + +=item C + +TODO: Describe findsub + +=item C + +TODO: Describe format_date + +=item C + +Formats the C<$datetime> object accoring to the user's locale setting. + +The parameter C can control whether or not the time +component is formatted as well: + +=over 4 + +=item * C + +Only format the year, month and day. This is also the default. + +=item * C + +Add the hour to the date. + +=item * C + +Add hour:minute to the date. + +=item * C + +Add hour:minute:second to the date. + +=back + +=item C + +TODO: Describe get_local_time_zone + +=item C + +TODO: Describe is_utf8 + +=item C + +TODO: Describe lang_to_locale + +=item C + +TODO: Describe new + +=item C + +TODO: Describe parse_date + +=item C + +TODO: Describe parse_date_to_object + +=item C + +TODO: Describe quote_special_chars + +=item C + +TODO: Describe raw_io_active + +=item C + +TODO: Describe reformat_date + +=item C + +TODO: Describe remap_special_chars + +=item C + +TODO: Describe restore_numberformat + +=item C + +TODO: Describe set_numberformat_wo_thousands_separator + +=item C + +TODO: Describe text + +=item C + +TODO: Describe unquote_special_chars + +=item C + +TODO: Describe with_raw_io + +=back + +=head1 BUGS + +Nothing here yet. + +=head1 AUTHOR + +Moritz Bunkus Em.bunkus@linet-services.deE + +=cut