第6回 干支を求めてみよう
 うしとら・・・の「十二支(えと)」は誰でも知っていると思います。たとえば今年(2011年)は卯年ですね。これは12年でひとまわりしますから、どこかの年の「えと」がわかれば、他の年の「えと」も簡単にわかります。
十二支

 しかし暦ではこれと「十干」を組み合わせた「干支」が重要になります。たとえば2011年の干支は「辛卯かのとう」です。
十干

 ちなみに「えと」というのは本来、十干をきのえきのとひのえひのと・・・と呼ぶことから来たもので、十二支を「えと」と呼ぶのは正しくありません。なお「え」、「と」は夫々「兄」、「弟」の意味です。
 ともかく、十干のほうも10年で一巡しますので難しくはありません。10年で一巡ですから、西暦年の末尾によって十干は決まっています。そして201年はたしかに辛です。
 十干は10年、十二支は12年で一巡しますから、その組み合わせの干支は(最小公倍数の)60年で一巡します。その組み合わせは次のとおりです。
干支

 表のように、干支には0から59までの番号を付けるのが便利です。0から始めるのがミソです。この干支番号は西暦年から簡単に求められます。
 雑学として、あの高校球児と阪神タイガースの殿堂、阪神甲子園球場が建てられたのが1924年ということを知っていると、その年が甲子だということがわかりますから、
  干支番号は、(西暦年−1924)を60で割った余り
ということがわかります。
 ところで Javascript には剰余(あまり)を計算する演算子として  があります。だから西暦年をyとすれば干支番号は
  (y−1924) % 60
で簡単に求められます。
 ただし、
  y < 1924
の場合には剰余が負になるのでうまくいきません。しかし1924から60年ずつ遡った年は必ず甲子ですから、たとえば1920年(60×32)遡って4として、
  (y−4) % 60
 これなら日本史に出てくるくらいの年代は大丈夫です。
 暦の計算では、この剰余を求めることが非常に多いのですが、以前、『暦の会』で講演下さった湯浅吉美先生はこれを電卓で求めることの大変さをぼやいていらっしゃいました。Javascript を覚えていただければと思いました。

 西暦4年からの年数(y−4)を用いると、(y−4)%10および(y−4)%12は干支と次のような対応になります。


 これを利用して、第3回で説明した配列を用いれば、任意の年の干支を求めるプログラムが作れます。

Kanshi1.html
<html>
<head>
<title>暦計算 第6回、年の干支</title>
</head>
<body>
<script language="Javascript">
<!--
Kan = new Array('甲','乙','丙','丁','戊','己','庚','辛','壬','癸');
Shi = new Array('子','丑','寅','卯','辰','巳','午','未','申','酉','戌','亥');

year = 2011;
document.write(year,'年:',Kan[(year-4)%10],Shi[(year-4)%12],'<br>');
//-->
</script>
</body>
</html>

 これを実行すると
 たしかに2011年は辛卯と表示されます。
 また、yearを645とすると

 この年に中大兄皇子と中臣鎌足が曽我氏を倒したクーデターは『乙巳の変』と呼ばれています。『大化の改新』の発端ですね。この他、『壬申の乱』(672)、『戊辰戦争』(1868)、『辛亥革命』(1911)なども容易に確認できます。

はじめに戻る
第5回へ
第7回へ

May 2011

ご意見、ご感想
ザ・ランスのホームページ
旧暦と二十四節気のページ