明日は何日?

FlexなどのACTIONSCRIPT系の言語をやってると意外な事が出来ない事に困惑する。

例えば、今日から一週間分のカレンダーを作ると言う時、今日の日付はわかるが、明日は、二日後は何日?と言うのをすぐに計算する関数が無い。

Adobeの日付に関するページを読むと方法が書いてあった。

http://help.adobe.com/ja_JP/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7f10.html

結局、こういう定数を一旦設定してそれを加算して利用するらしい。
 public static const millisecondsPerDay:int = 1000 * 60 * 60 * 24;

一週間のカレンダーを作成するなら
var day:Array = new Array(“日”,”月”,”火”,”水”,”木”,”金”,”土”);  
var today:Date; 

for(var c:int=0;c<7;c++)
{
    today = new Date();
    today = new Date(today.getTime() + (c * millisecondsPerDay));
   [ 設定したい対象]=String(today.month+1)+”月”+String(today.date)+”日(“+day[today.getDay()]+”)”;
   }
となる様だ。

又、例えば、二つの日付の差が何日あるのか?
と言う場合は、何れの日付も、一端1970 年 1 月 1 日(UTC)からの経過ミリ秒数として取得するgetTime() メソッドを使用してミリ秒へ変換して差を計算して、その後、先のmillisecondsPerDayで割ると日数が計算できる。

あ~面倒臭い。

カテゴリー: Flash Builder, 仕事   パーマリンク

コメントは受け付けていません。