指定年月のカレンダーを作成する(表レイアウト)

■プログラム説明(ソースコード説明)
 変数YYが年、変数MMが作成するカレンダーの月になります。月は実際よりも1少ない値にする必要があります。これはDateオブジェクトのsetMonth()メソッドが実際の月よりも1少ない値を指定する必要があるためです。月によって31日だったり30日だったりするため、月末日を配列loopに入れておき月に応じて生成する日にちの長さを決めます。ただし、2月の閏年の処理は行っていません。表レイアウトにするため罫線を描画しますが、罫線は線でなく四角形を生成して処理しています。

■ソースコード
YY = 2005; // 年数
MM = 0; // 月は実際より1少ない値にする
youbi = ["(日)","(月)","(火)","(水)","(木)","(金)","(土)"];
loop = [31,29,31,30,31,30,31,31,30,31,30,31];
x = 200;
y = 650;
dy = -22; // 移動量
w = 400; // 横線の幅
h = 0.5; // 縦線の幅
docObj = documents.add();
for (i=0; i<loop[MM]; i++)
{
tmpObj = new Date(YY,MM,i+1);
tmpMM = tmpObj.getMonth() + 1;
tmpDD = tmpObj.getDate();
tmpYB = tmpObj.getDay();
textObj = docObj.textFrames.add();
textObj.contents = tmpMM+"月"+tmpDD+"日"+youbi[tmpYB];
textObj.translate(x,y);
pathObj = docObj.pathItems.rectangle(0,0,w,h);
pathObj.translate(x,y-2);
y += dy;
}


■使い方
1:カレンダーを作成するドキュメントをアクティブ(最前面)にします。
2:ファイルメニューからスクリプトを実行します。
3:指定年月日のカレンダーが作成されます。


■ポイント
 線の色はデフォルトの色になるので、あらかじめ塗りの色を指定してください。
 閏年の処理は行っていません。このため2月は常に29日まで表示されます。閏年の処理を行いたい場合には以下の命令を使って処理できます。

if (((theYear__ % 4 == 0) && (theYear__ % 100 != 0)) || (theYear__ % 400 == 0))
{
閏年の処理
}

■実際のスクリプトをダウンロード(sample.js.zip)