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


