十二支の干支を求める - Perl

指定した年(西暦年)が、干支(子・丑・寅・卯・辰・巳・午・未・申・酉・戌・亥)で何年かをプログラムで計算し求めたい。 ロジックは非常にシンプルである。

西暦を12で剰余算すると0の時に申(サル)が来る。ということで、申・酉・戌・亥・子・丑・寅・卯・辰・巳・午・未という順番の配列を作成しておき、後は添え字を剰余算で計算してやれば良い。

サンプル

;#
;#干支算出
;#

print getEto(2007), "\n";

#------------------------------------------
#干支を取得する
#------------------------------------------
sub getEto{
    my $year = shift;
    my @label  = ('申','酉','戌','亥','子','丑','寅','卯','辰','巳','午','未');

    return( $label[$year % 12] );
}

#※文字コードはEUCで

対応表

対応関係がいまいちわからんという人は以下を参照のこと。

西暦 西暦%12 実際の干支
1992 0 さる
1993 1 とり
1994 2 いぬ
1995 3
1996 4
1997 5 うし
1998 6 とら
1999 7 うし
2000 8 たつ
2001 9
2002 10 うま
2003 11 ひつじ
2004 0 さる
2005 1 とり
2006 2 いぬ
2007 3
2008 4
2009 5 うし
2010 6 とら

干支を聞いて、こいつで計算すれば、おおまかな年齢がばれるというのは秘密です(笑)