今日は何の日、第4弾の動作
今日の日の三要素を表示するサンプルコードを示します。
三要素
①本日の日付
②曜日
③元日からの通算日
サンプルコード
<div id="enchant-stage" style="width: 580px; height: 600px;"></div> <script src="https://aidesign.lolipop.jp/wp-content/uploads/2014/11/enchant.js" type="text/javascript"></script><script type="text/javascript">// <![CDATA[ const X0 = 60; // 画像の位置X const Y0 = 50; // 画像の位置Y IMAGE = {icon0: "https://aidesign.lolipop.jp/wp-content/uploads/2015/06/week8A.png"}; enchant(); // ライブラリの初期化 myWeek = new Date(); // 現在日付を取得 myYear = myWeek.getFullYear(); // 年 myMonth = myWeek.getMonth() + 1; // 月 myDate = myWeek.getDate(); // 日 myDay = myWeek.getDay(); // 曜日 myHour = myWeek.getHours(); // 時 myMinute = myWeek.getMinutes(); // 分 mySecond = myWeek.getSeconds(); // 秒 myMess1 = myYear + "年" + myMonth + "月" + myDate + "日"; myMess3 = myHour + "時" + myMinute + "分" + mySecond + "秒"; myMess = myMess1 + " " + myMess3; //alert("WhatDay-0 "+myMess+" "+myDay); var minute = 1000 * 60; var hour = minute * 60; var day = hour * 24; date = new Date("1/1/"+myYear); // 1970-01-01から今年の元日までのミリ秒 var time = date.getTime(); var curr = myWeek.getTime(); // 1970-01-01から今日までのミリ秒 var total = Math.floor((curr-time) / day); //alert("ANS="+curr+" time="+time+" answer="+total); window.onload = function(){ // ロード時に実行する関数 //alert("WhatDay-2"); game = new Game(400, 200); // ゲームの画面サイズを指定し、領域を確保 game.rootScene.backgroundColor = "palegoldenrod"; game.preload(IMAGE.icon0); //alert("WhatDay-2A"); game.onload = function() { // プリロード終了後に呼ばれる関数を指定する //alert("WhatDay-3"); display(10, 25, myMess); // 今日の日付 score = new Label("strID"); // ラベルオブジェクト score.color = "darkgreen"; score.font = "normal normal 12px/1.0 monospace"; score.text = "《今日は何の日》 Version 1.0.03"; score.x = 4; score.y = 4; game.rootScene.addChild(score); //alert("WhatDay-4"); word = new Label("str-0"); // ラベルオブジェクト word.color = "deeppink"; word.font = "normal normal 30px/1.0 monospace"; bear = new Sprite(120, 120); // 目標の画像と座標を指定する bear.x = 20+X0; bear.y = Y0; bear.image = game.assets[IMAGE.icon0]; bear.frame = myDay; // 目標のx座標 game.rootScene.addChild(bear); // 目標を移動 display(10, 50+Y0, "今日は"); display(150+X0, 50+Y0, "曜日です"); display(10, 125+Y0, "元日からの通算日="+total); } // ゲームのスタート game.start(); } function display(x, y, string){ idiom = new Label("str-1"); // 熟語 idiom.text = string; idiom.x = x; idiom.y = y; idiom.color = "blue"; idiom.font = "normal normal 20px/1.0 monospace"; game.rootScene.addChild(idiom); // 目標を移動 } // ]]></script>
まとめ
現在日付と曜日はDate関数を呼び出すことで求めています。通算日は1970-01-01から本日までの経過時間と本年-01-01までの経過時間との差から算出しています。0が始値です。
曜日の画像はenchantライブラリの連続画像を部分表示するframe機能を利用しています。この機能を用いれば7枚の画像を細切れに用意せずとも7枚をつないだ1枚の画像で済みます。
ところどころ、alert関数に//が付加されたコメント文があり、デバッグの跡を見ることができます。