Last Modified: 2009/07/03 14:53:38

Sc283(1) 情報科学応用演習I 資料 (Part 9) 

[解説] 日付 (Date) オブジェクト

(参考: 日付(Date) in とほほのJavaScriptリファレンス)

JavaScript には,日付や時刻を表わすための特別なデータ型 (日付オブジェクト)[註1] がある. 日付オブジェクトは,new 演算子で生成される.

日付オブジェクトの生成

日付オブジェクトは,new 演算子を Date(…) 関数[註2] に作用させることによって生成できる. このときの Date(…) 関数の引数によって, 生成する日付オブジェクトの日付・時刻を指定できる:

  1. 年月日(時分秒)を別個の引数で与える.
  2. 年月日(時分秒)を一つの文字列で与える.
  3. 引数を省略する.(現在の年月日(時分秒)を意味する.)
  1. new Date(, , [, , , ])

    年,月,日,時,分,秒 を,それぞれ整数値で別個の引数として与える. ただし,月は,1月〜12月 を 0〜11 で表わし,月の数字と1つずつずれるので注意を要する. 例えば, を表わす日付オブジェクトは,

    として生成できる.また,引数の 時,分,秒 を省略することもでき, その場合は 0時0分0秒 として扱われる.

  2. new Date(文字列 )

    引数には,「年月日」または「年月日時分秒」を表わす文字列を与える. 文字列の形式は種々のものが許されるが, "// ::" または "//" という形が分かりやすい. 例えば, を表わす日付オブジェクトは,

    として生成できる.この場合の月は,通常の 1月,2月 の 1,2 なので, 上の場合のように1つずつずれることはない.

  3. new Date()

    この場合は,現在の日付・時刻を表わす日付オブジェクトを生成する.

日付オブジェクトからの情報取得

上記のように作成された日付オブジェクトは, alert(…)document.write(…) 等で出力すると, のような形式で出力される.

また,日付オブジェクトからは,その日付オブジェクトが代入されている変数 (仮に d とする) に対して, 下表のような形式で種々の情報を取り出すことができる.[註3]

形式意味 (値)
d.getFullYear() その日付オブジェクトの年を値とする.(整数値)
d.getMonth() その日付オブジェクトの月を値とする.(0〜11 の整数値)
1月〜12月 が 0〜11 で表わされる
d.getDate() その日付オブジェクトの (月内の) 日を値とする.(1〜31 の整数値)
d.getDay() その日付オブジェクトの曜日を値とする.(0〜6 の整数値)
日曜〜土曜 が 0〜6 で表わされる
d.getHours() その日付オブジェクトの時を値とする.(0〜23 の整数値)
d.getMinutes() その日付オブジェクトの分を値とする.(0〜59 整数値)
d.getSeconds() その日付オブジェクトの秒を値とする.(0〜59 整数値)

例:「今日の曜日」

var d, day; // 日付オブジェクト,曜日

// 今日現在の日付オブジェクトを生成して d に代入する.
d = new Date();

// getDay() で曜日 (0〜6) を取得して,文字列に変換する.
// switch を使うと良い.
switch (d.getDay()) {
case 0: day = "日曜日"; break;
case 1: day = "月曜日"; break;
case 2: day = "火曜日"; break;
case 3: day = "水曜日"; break;
case 4: day = "木曜日"; break;
case 5: day = "金曜日"; break;
case 6: day = "土曜日";
}

// 上で生成した曜日 (文字列) を出力する.
document.writeln("今日は" + day + "です.");

実行可能な例例のコードと流れ図


[解説] 配列

(参考: 配列(Array) in とほほのJavaScriptリファレンス)

複数の変数をひとまとめにして通し番号を付け, その番号で指定した「変数」をアクセスする仕掛けを配列と呼ぶ.

配列 (Array) オブジェクト

配列オブジェクトは,複数の変数をひとまとめにして通し番号を付けた構造体で, new 演算子を Array(n) 関数に作用させて生成する. このときの Array(n) 関数の引数 n は,作成する配列オブジェクトの大きさ (変数の数) で, 通し番号は,0 〜 n-1 となる.

new 演算子で生成された配列オブジェクトは,通常,変数に代入して用いる. 変数 x に代入した配列オブジェクトの i 番の要素 (変数) は, x[i] と表わす.

var x, y;

// 大きさ10の配列オブジェクトを生成して
// 変数 x に代入
x = new Array(10);  

// xに代入された配列オブジェクトの
// 最初の要素 (変数) に100を代入する
x[0] = 100;

y = x[0]/100;
配列

また,変数 x 中の配列オブジェクトの大きさ (長さ; 変数の数) は x.length という表現で得られる.

配列リテラル

new 演算子と Array(n) 関数を用いる方法のほかに,あらかじめ初期値が定まっている配列は, その初期値をコンマで区切って並べ,[ ] で括って表現することもできる. 例えば以下の (A), (B) は等価である.

(A)
var daytable = new Array(7);
daytable[0] = "日曜日";
daytable[1] = "月曜日";
daytable[2] = "火曜日";
daytable[3] = "水曜日";
daytable[4] = "木曜日";
daytable[5] = "金曜日";
daytable[6] = "土曜日";
(B)
var daytable = ["日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日"];

[タスク] フィボナッチ数列

概要

フィボナッチ数列の最初の10項を計算して表示する. フィボナッチ数列とは,以下の漸化式にしたがう数列である.

{
a1 = a2 = 1
an = an-1 + an-2 , (n≥3)

ヒント

以下に例を示す.リンクをクリックすれば実行できる.(別ウィンドウで実行される)

js09-1a.html雛形,例のコードと流れ図


[タスク] 今日の曜日(2)

概要

上の解説「日付 (Date) オブジェクト」の例 「今日の曜日」を, switch を使わずに,代わりに配列を作って実現する.

ヒント

以下に例を示す.リンクをクリックすれば実行できる.(別ウィンドウで実行される)

js09-2a.html雛形,例のコードと流れ図


[課題] 計算練習プログラム(2)

課題番号: 9-1
課題名: 計算練習プログラム(2)
ファイル名:task09-1.html
締切: 次回の演習の前日の18:00まで

内容

課題8-1 (参考) のコードを,答えあわせができるようにして完成する.

ヒント

更なるヒント

参考

報告について

Moodle の課題ページからファイルを提出すること.ファイル名はすべて半角文字とする.

脚注

[註1]
厳密には「データ型」ではなく「クラス」である.
[註2]
この Date 関数は,日付オブジェクト (Date クラス) のコンストラクタ関数と呼ばれる.
[註3]
これらの getFullYear() などは, 日付オブジェクト (Date クラス) のメソッドと呼ばれる.