今回は、IchigoJamでカレンダーを表示してみましょう。書いたものの、IchigoJamは時計機能を内蔵していません。IchigoJamを起動した時に何年何月何時何分なのかは分からない(保持されていない)ということです。仕方ないので、年月はプログラムの最初で定義しておくことにします。現在ほとんどのプログラム言語では、日付を扱うための便利な機能が用意されています。IchigoJamには、そのような機能がありません。日付に関する機能がないのですから当然です。そこで、ちょっと困ってしまうのがカレンダーの曜日です。ほとんどのプログラム言語で簡単に求めることができますが、IchigoJamにはありません。調べてみると、日付から曜日を求める「ツェラーの公式」というのがありました。・ツェラーの公式https://ja.wikipedia.org/wiki/ツェラーの公式https://ja.wikipedia.org/wiki/ツェラーの公式より分かりやすいページもあります。こちらは手計算で求める過程を体験できます。・日付から曜日を求める(手計算編)http://www.suguru.jp/culture/Zeller.htmlhttp://www.suguru.jp/culture/Zeller.htmlカレンダーの場合、その月の1日の曜日が分かれば十分です。IchigoJamで作成したBASICプログラムが100年後も使われることはないので、動作条件を限定してしまいます。(1)うるう年の処理うるう歳は4年に一度です。西暦年数が100で割り切れる場合は、うるう年ではありません。400で割り切れる年はうるう年になります。ここで2016年以降2099年までに限定すると、4年に一度のうるう年だけを考慮すればよいことになります。(2)曜日を求める処理2016〜2099年までなので曜日は以下の計算式で求めます。ここでYが年、Mが月になります。A=((Y%100)*5)/4B=((N+1)*13)/5C=(105+A+B+1)%7ただし、Mが1か2の場合は年から1を引き、Mに12を足します。Y=Y-1:N=12+M最終的に変数Cに曜日を示す値が入ります。この値は以下のようになります。金ただ、土曜日が0だとプログラムでは扱いにくいので、以下のように日曜日が0になるように調整します。C=(C+6)%7これで曜日を求めることができました。あとは、カレンダーを表示するプログラムだけです。単純に日付を表示していき、土曜日になったら下の行に日にちを表示するように座標をずらします。実際のプログラムは以下のようになります。曜日を求める処理を入れても、案外と短いプログラムになりました。Illustratorだと、この2倍の行数になります。見ると、IchigoJamのBASICは学習用としてはいいのかもしれません。PRINT【古籏一浩】openspc@alpha.ocn.ne.jphttp://www.openspc2.org/http://www.openspc2.org/インサイダー取引・詐欺みたいなトラブルが発生し有名になったVALU。http://nlab.itmedia.co.jp/nl/articles/1708/17/news060.htmlhttp://nlab.itmedia.co.jp/nl/articles/1708/17/news060.html自分の市場価値が分かるという、面白いサービスです。VALUという株式に近いものを発行できます。実質的には寄付に近いサービスのようで、どのくらい寄付するかの目安・指標サイトとしてはよさそうです。発行できるかと思ってやったら、申請は却下されました。自分の市場価値を調べる以前に、私は対象外ということみたいです。InDesignのJavaScriptリファレンスだいぶ追加し、そこそこいける感じになりました。Referencehttp://www.openspc2.org/reibun/InDesignCS6/ref/http://www.openspc2.org/reibun/InDesignCS6/ref/InDesignはあまりに量が多く大変なので、気晴らしにPhotoshopのJavaScriptリファレンスも少し用意しました。こちらは気が向いたら増やします。記事)川合和史@コロ。