指定した年(西暦年)が、干支(子・丑・寅・卯・辰・巳・午・未・申・酉・戌・亥)で何年かをプログラムで計算し求めたい。 ロジックは非常にシンプルである。
西暦を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 | とら |
干支を聞いて、こいつで計算すれば、おおまかな年齢がばれるというのは秘密です(笑)