旧暦計算プログラムの修正

alkoshikawa 437views 更新:2014年10月23日

http://homepage1.nifty.com/ave/kaihatsu/qreki.htm

こちらでJavaの旧暦計算プログラムが公開されており、 6曜の表示で使用していたのですが、12月の中旬を表示しようとすると

ArrayIndexOutOfBoundsException

が発生していました。

QReki.javaの91行目あたりの

    if( (int)(saku[1]) <= (int)(chu[0][0]) ){
        for(i=0;i<5;i++){
                saku[i]=saku[i+1];
            }
        saku[4]=calc_saku(saku[3]+35.0);
        }

ここです。要素が4つしかいない状態で5つ目を参照しようとしてコケるようです。 以下のように変更します。

if (i + 1 < saku.length) {
          saku[i] = saku[i + 1];
        }

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません