
カレンダーを表示するプログラムを作っていきます
完成したプロジェクトはこちらです
カレンダーを作ろう Scratchで作成
素材を準備しよう
利用する素材をダウンロードしてください
カレンダー素材
ステージを選びます

「背景」タブを選び「ファイルから新しい背景をアップロード」を選び「stage.svg」を読み込みます

背景が変更されました。ネコがカレンダーに重ならないように移動させます

新しいスプライトの「ファイルから新しいスプライトをアップロード」を選び「1.svg」を読み込みます

作成された数字のスプライトの「コスチューム」タブを選び「ファイルから新しいスプライトをアップロード」を選びます

「1.svg」以外の数字(2.svg〜31.svg)を読み込みます

コスチュームが読み込めましたが順番がぐちゃぐちゃなのでドラッグして順番通りに並べます

1〜31に順番に並べば完成です。数が多いと並べ替えはかなり面倒なので、ファイルを5個ずつ読み込むなど、工夫してみてください

数字のスプライトをカレンダーの一番左上に移動します(x座標-143、y座標66あたり)

年と月から曜日を求めよう
ステージにスクリプトを作成するので、ステージを選びます

変数「年」を作ります

変数「月」を作ります

プログラム開始時に現在の年・月をセットするスクリプトを作成します

次に、年と月から曜日を求めるスクリプトを作成します。計算中に一時的に利用するための変数「年2」「月2」を作ります


変数「曜日」を作ります

計算途中の値を保存するための変数「計算結果」を作ります

新しく「曜日を求める」というブロックを作ります

年月日から曜日を求めるブロックを作成します。「ツェラーの公式」です

曜日を求める手順(ツェラーの公式)は次の通りです
- 1月と2月は前の年の13月、14月に変換します(例 2018年1月 → 2017年13月)
- 年を4で割った値と年を足します
- 2の計算結果から年を100で割った値を引きます
- 3の計算結果に年を400で割った値を足します
- 月を13倍にして8を足した値を5で割り、4の計算結果に足します
- 5の計算結果に日を足します
- 6の計算結果を7で割った余りが曜日
曜日と数字の対応はこの通り(Scratchの「現在の曜日」ブロックで求めることができる値はこの数字より1つ大きいです)
日 | 月 | 火 | 水 | 木 | 金 | 土 |
---|
0 | 1 | 2 | 3 | 4 | 5 | 6 |
この手順で2018年5月1日が何曜日になるか調べてみましょう。割り算は全て小数点以下を切り捨てます
- 年は2018、月は5、日は1
- 年を4で割った値と年を足します
2018 / 4 + 2018 = 2522 - 2の計算結果から年を100で割った値を引きます
2522 – 2018 / 100 = 2502 - 3の計算結果に年を400で割った値を足します
2502 + 2018 / 400 = 2507 - 月を13倍にして8を足した値を5で割り、4の計算結果に足します
2507 + (5 * 13 + 8) / 5 = 2521 - 5の計算結果に日を足します
2521 + 1 = 2522 - 6の計算結果を7で割った余りが曜日
2522 / 7 = 359 あまり 2
答えは2なので火曜日です
プログラム開始時のスクリプトを修正します

続きます!

【Scratchチュートリアル】カレンダーを作ろう2(全3回)
2回目かいめです 1回目はこちら 今月こんげつのカレンダーを作つくろう 数字すうじ(日付ひづけ)のスプライトにスクリプトを作成さくせいします。スプライトはすでにカレンダーの左上ひだりうえのマスに移動いどうしているので「x座標ざひょうを○、y...
Scratch 3.0に対応した書籍です[PR]
リンク
リンク
リンク
リンク
リンク
リンク
リンク
リンク
リンク
リンク
リンク
リンク
リンク
リンク
リンク
リンク
リンク
リンク