携帯Flash Flash Lite1.1 ActionScript1.0で基準時間を設定する
Flashで基準時間を基に経過時間を求めたりするには、以下のクラスがあります。
getTime()
指定された Date オブジェクトに関して、1970 年 1 月 1 日 0 時 (世界時) からのミリ秒数を返します。
でもこれはFlash Lite2以降で対応・・・今現在(2008/10)、Flash Lite1.1に対応しているdocomoの901以降の端末はまだまだ現役ですから、これに対応しないのは辛いところです。
それでは、Flash Lite1.1ではどのように基準時間を設定すれば良いのでしょうか。無理なのでしょうか・・・orz
色々と探してみたら、FLASH-JP.COMに素晴らしい情報がッ!
まずはグレゴリオ暦とユリウス通日の計算方法を勉強してください。
通日計算はうるうどしの100年ルールと400年ルールの計算も必要ですが
1900年3月から 2099年までという見方をすると
MJD:準ユリウス日 1858年11月17日0時(UT)JD=2400000.5日
は
y = FSCommand2("GetDateYear")
m = FSCommand2("GetDateMonth")
d = FSCommand2("GetDateDay")if m <3 then (y=y-1 ;m=m+10)
else m=m-2 ;
//3月を起点としますMJD=int(365.25 * y) + int(30.59 * m) +d – 678912 -int(y/100)+int(y/400)
1900年3月から2100年2月まで限定の場合
MJD=int(365.25 * y) + int(30.59 * m) +d – 678927
となります。
この数値は一般的天体計算をするのに使えます。例えば2005/8/23は
int(2005*365.25) + int(30.59 *6) +23 -628927=53605
です。
普通時差については考えないでJST 9:00(UT 0:00)と考えていいと思うます。Flash4ルールなのでint は普通に切り捨てです。(言語によっては四捨五入)
ユリウス通日ですかー!
大変勉強になりました。
これでFlash Lite1.1でも基準日を設定できるのですね。
早速試してみましょう!
有難うございます。