「FLash CS4」体験版ダウンロードはこちらから
「Adobe CS4」購入はこちらから

前回、DateクラスからDateオブジェクトを生成し変数にする(代入という)方法を紹介したが、今回はそのDateオブジェクトから実際に日時を取り出してみよう。なおソースファイルはこちらからダウンロードできる。

Dateオブジェクトから、日時を取り出す

Dateオブジェクトには、日時のデータが備わっている。たとえば、nowというDateオブジェクトから「年」を知りたいときは次のようにする。(※ソースファイル dw_test_02.fla)

var now:Date = new Date();
trace(now.fullYear);

nowとfullYearの間にある「.(ドット)」は、「■の中の●●」という意味の区切り文字で、この場合、「変数 now の中にあるfullYear」となる。ムービープレビューすると、次のように出力パネルに表示されるはずだ。このとき、nowは、fullYearや後で紹介するその他のプロパティと呼ばれる変数をグループ化して持っている。

2010と出力される

2010が年であることを示すために、「2010年」と表示するなら、tarce()の行を次のように変更する。(※ソースファイル dw_test_03.fla)

trace( now.fullYear + "年" );

2010年と出力された

trace()の中を見ると、"(ダブルクォーテーション)で囲まれた部分をリテラル値、あるいはリテラル文字という。これは、そのまま表示する文字であるということだ。この場合、"年"がそれにあたる。

片方が文字の場合、「+」を使用するとその前後を繋げることが可能だ。ここでは、now.fullYear で置き換えられる 2010 と"年"を「+」でつなげて、"2010年" を出力したというわけだ。(※2010の型はNumber、"年"の型はStringだが、trace()は自動的にNumberをStringに変換するため、+でつなげることができる。)

他の情報も取得する

Dateオブジェクトから年以外の、月や日などを取得する方法も同様の手順でOKだ。オンラインヘルプにある内容を表にしてみた。

Dateオブジェクトの代表的なプロパティ

プロパティ名 意味
fullYear 4桁の年を表す数値
month 月を表す0~11の数値(0…1月、1……2月、11……12月)
date 日付けを表す1~31の数値
day 曜日を表す0~6の数値
hours 時間を表す0~23の数値
minutes 分を表す0~59の数値
seconds 秒を表す0~59の数値

※プロパティとはオブジェクト内にある変数のことで、上記プロパティは、すべてNumberという型になっている。

上記を参考に図のように出力パネルに出すASは、例のようになる。(※ソースファイル dw_test_04.fla)

今日の日付(例 2010.1.20)が出力される

var now:Date = new Date()
trace(now.fullYear + "." + (now.month+1) + "." + now.date)

解説をすると、「now.fullYear」は、4桁の年を示す。同じく、now.monthは、月の数字を返すが、0から始まるので1加算するように「+1」を計算式として追加した。文字の場合と異なり「+」記号の前後が数値ならば普通の四則演算を実行する。

最後の、「now.date」は日付を返す。また、これらの間を「 "." 」でつなげるために、「 + "." +  」とそれぞれの値の間に入れている。

変数を上手に利用してプログラムを整理

ここで、少しプログラムを見やすく整理しよう。ここまで、次のようなプログラムを書いた。(※ソースファイル dw_test_04.fla)

var now:Date = new Date()
trace(now.fullYear + "." + (now.month+1) + "." + now.date)

実は、これをもっと分かりやすく書くことができる。それが、次のものだ。(※ソースファイルdw_test_05.fla)

var now:Date = new Date()
var year:Number = now.fullYear
var month:Number = now.month+1
var date:Number = now.date
trace( year + "." + month + "." + date )

これを前のものと比べると、違いがいくつかある。

  • varで始まる行数がふえた。
  • trace()の内容がシンプルになった

注目して欲しいのは、最後の出力するところがシンプルになったことだ。そのために、行数は増えているが、1行を短く、シンプルな機能にしているので理解しやすいはずだ。むしろ、trace()が整理された分、改造がしやすくなっているはずだ。

たとえば「2010年1月20日」と出したい場合、trace()の行を次のようにすればよい。

trace(year+ "年" + month + "月" + date + "日")

※ソースファイル dw_test_05.flaのコメント(最初の//)を外してムービープレビューしてみて欲しい。

「2010年1月20日」の表記で今日が出力された

今回、Dateオブジェクトであるnowから日付情報を取り出すことができたので、次はそれをhtmlテキストにして表示してみよう。次回からは、このtrace()をhtmlテキスト表示に変更してみよう。

伊藤のりゆき(NORI)
有限会社トゴル・カンパニー代表。ロクナナワークショップ講師。Flashアクセシビリティを得意とし、ライターとしてFlash関連書籍や雑誌記事の執筆を行うほか、AdobeTVでも解説。共著の「ActionScript3.0辞典」が発売中。また、先頃、写真家として初の写真集「「Snap or Nothing写真集」( iTunes AppStoreにて)が発売された。内容のリクエストはTwitter(nori_togoru)まで。