あけましておめでとうございます!
iTeen岡崎南校です!
皆さま年末年始はいかがお過ごしだったでしょうか?
去年の12月28日は土曜日だったため、1月5日の日曜日までの9日間がお休みとなる方が多く
今回の年末年始は「奇跡の9連休」と呼ばれる大型連休となりました。
これは5年ぶりで、2019年の12月28日も今回と同じく土曜日だったそうです。
……5年前と言われても、そんな前の曜日を覚えてる人なんてそういませんよね。
ですが、〇年の〇月〇日が何曜日だったかを計算する方法があるんです!
ということで、今回はScratchを使って「ある日付の曜日を計算する」プログラムを作ってみます!
まずは曜日を計算する方法ですが、ツェラーの公式というものを使います。
少し複雑なので、それをコンピュータで計算する用に簡単にしたものが下の式です。
これでも文字や記号が多くてちょっと難しそうに見えますが、
実は、計算自体は四則演算(足し算・引き算・掛け算・割り算)だけでできちゃいます!
1つずつ確認していきましょう。
まず分数ですが、割り算の形に直せるので y ÷ 4 や y ÷ 100 と表せますね。
更に y は「年」なので変数を作っておき、コンピュータでは「÷」の代わりに「/」を使うので
となります。
そして y / 4 を囲っている [ ] のような記号は、Scratchの「〇〇の切り下げ」と同じ意味なので
とするだけです。
次に 13m + 8 の部分ですが、「文字を使った計算は×(かける)を省略する」というルールがあります。
なので、省略せずに表すと 13×m + 8 となります。
更に m は「月」なので変数を作っておき、コンピュータでは「×」の代わりに「*」を使うので
となります。
そして分数の部分と [ ] の記号もさっきと同様に表すと
となります。
最後に mod 7 ですが、これは「7で割った余り」を求めるという意味です。
例えば、 10 mod 7 なら 10 ÷ 7 = 1 … 3 で答えは 3 となります。
Scratchには「〇〇を〇〇で割った余り」というブロックがあり、これが mod と同じ意味ですね。
d は「日」なので変数を作っておき、かっこの中身を全て計算した後に7で割った余りを求めると
となって、これで計算式の完成です!
あとは、調べたい日付の年・月・日を入力するプログラムを作って、
1月と2月だった場合は前年の13月・14月に直す処理(2025年の1月は2024年の13月として計算)、
最後に計算の答えが0だったら「日曜日」、1だったら「月曜日」……という変換をすることで
日付から曜日を計算してくれるプログラムの完成です!
さっそく曜日を聞いてみると……
ちゃんと正しい答えが返ってきました!
コンピュータは計算が得意なので、こういった難しい計算も一瞬でしてくれます。
自分が生まれた日の曜日だってすぐ分かっちゃいます。
他にも、このプログラムを改造して聞いた日付の曜日を答えるだけでなく、
その月のカレンダーを作って表示してくれるようにしても面白そうですね。
このプログラムを使ってみたい、もっと詳しく知りたいという方は、
お気軽に当教室までお越しください!
無料体験授業もお問い合わせフォームより随時受付中です!