【问题标题】:How to Print Spelled out month names rather than numbers如何打印拼写出来的月份名称而不是数字
【发布时间】:2023-03-12 08:46:01
【问题描述】:

如何让 Perl 打印月份名称而不是数字,例如:9 应该显示为九月。我希望下面的程序打印月份的名称而不是它们的数字。

#!/usr/bin/perl

use strict;
use warnings;
use Date::Easter;

print "Please enter a year";
chomp (my $year = <STDIN>);

my ($m1, $d1) = easter ($year);
my ($m2, $d2) = julian_easter ($year);
my ($m3, $d3) = orthodox_easter ($year);

print "Gregorian => Month: $m1 Day: $d1\n";
print "Julian    => Month: $m2 Day: $d2\n";
print "Orthodox  => Month: $m3 Day: $d3\n";

【问题讨论】:

    标签: perl perl-module cpan


    【解决方案1】:

    我正在使用内置 POSIX 模块:

    #!/usr/bin/perl
    
    use strict;
    use warnings;
    use Date::Easter;
    use POSIX qw(strftime);
    
    my %dispach_sub = (
        easter          => \&easter,
        julian_easter   => \&julian_easter,
        orthodox_easter => \&orthodox_easter,
    );
    
    print "Please enter a year: ";
    chomp( my $year = <STDIN> );
    
    foreach my $key ( keys %dispach_sub ) {
    
        print "[$key]\t";
        my ( $month, $day ) = $dispach_sub{$key}->($year);
        print POSIX::strftime( "Month: %B Day: %d",
            0, 0, 0, $day, $month - 1, $year - 1900 ),
          "\n";
    }
    

    【讨论】:

      【解决方案2】:

      我懒得下载这个模块来查看月份是从 0 到 11 还是从 1 到 12。为此,我假设月份是从 0 到 11。

      最简单的方法是创建一个包含月份名称的数组:

      my @month_list = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);
      
      my ($m1, $d1) = easter ($year);
      my ($m2, $d2) = julian_easter ($year);
      my ($m3, $d3) = orthodox_easter ($year);
      
      print "Gregorian => Month: $month_list[$m1] Day: $d1\n";
      print "Julian    => Month: $month_list[$m2] Day: $d2\n";
      print "Orthodox  => Month: $month_list[$m3] Day: $d3\n";
      

      如果月份从 1 到 12 编号,则在数组的开头添加一个假月份:

      my @month_list = qw(Foo Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);
      

      【讨论】:

      • 我过敏了。我讨厌五月。
      • 是的,我注意到当我添加代码时,我只是在其中添加了可能:D...虽然很有帮助
      猜你喜欢
      • 2011-03-13
      • 2018-02-15
      • 1970-01-01
      • 2020-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-06
      • 2022-01-25
      相关资源
      最近更新 更多