代码: 全选
tlcr: 0 庚寅年十月十八日 21:19 ~
● ds lc-农历.perl
#!/usr/bin/env perl
use 5.010;
use Getopt::Long;
GetOptions(
number => \$num,
);
%en2cn = (
"1" => "一", "2" => "二", "3" => "三", "4" => "四", "5" => "五", "6" => "六", "7" => "七",
"8"=>"八", "9"=>"九", "10"=>"十",
"11"=>"十一", "12"=>"十二", "13"=>"十三", "14"=>"十四", "15"=>"十五", "16"=>"十六", "17"=>"十七", "18"=>"十八", "19"=>"十九", "20"=>"二十",
"21"=>"廿一", "22"=>"廿二", "23"=>"廿三", "24"=>"廿四", "25"=>"廿五", "26"=>"廿六", "27"=>"廿七", "28"=>"廿八", "29"=>"廿九", "30"=>"三十",);
if (@ARGV == 3)
{
$date = "$ARGV[0] $ARGV[1] $ARGV[2]";
}
else
{
chomp ($date = `date "+%Y %m %d"`);
}
@_ = `lunar -h $date | enconv`;
for (@_)
{
$line++;
if($line==4){
/(\d+)年\s*?(\d+)月\s*?(\d+)日/;
($nyear,$month,$day)=($1,$2,$3);
}
elsif($line==5){
/^干支: (.+?)年/;
$year=$1;
}
}
if ($num)
{
say "${nyear} ${month} ${day}";
}
else
{
say "${year}年$en2cn{$month}月$en2cn{$day}日";
}
tlcr: 0 庚寅年十月十八日 21:56 ~
●