メイン どこでもFlash【携帯向けFlash関連】 経過日数計算のActionScript | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
momiji | Åê¹ÆNo.19546 投稿日時: 2005-8-20 19:05 |
新米 居住地: 投稿: 3
使用環境:
WindowsXP,FlashMX2004 |
経過日数計算のActionScript 指定日からの経過日数を計算したいと考えています。
世界標準時の1970年1月1日午前0時からのミリ秒を取得できる ─────────────────────────────────────── getTime() ─────────────────────────────────────── はFlashPlayer5以降の対応のもののため、FlashLite1.1では使えないようなので どのように対処すればよいものか悩んでおります。 ─────────────────────────────────────── status = FSCommand2("GetLocaleShortDate","nowdate"); ─────────────────────────────────────── とりあえず、以上のActionScriptで現在の年月日は取得できたのですが、 この先に進めずにいます。 経過日数を算出する良い案がありましたら教えていただけると幸いです。 なお、やりたい内容は「月の満ち欠け」の待受FLASHです。 月齢の計算方法がわからないので、新月の2005年7月6日からの経過日数を算出して それを28で割った余りの日数から、おおよその月齢を計算しようと考えているところです。 ご教授よろしくお願いいたします。 |
Fla4man | Åê¹ÆNo.19547 投稿日時: 2005-8-20 20:11 |
職人 居住地: かまくら 投稿: 517
使用環境:
WinMe,Win2000, Flash4,アズさん,大仏、delphi |
Re: 経過日数計算のActionScript 一応月齢カレンダーなど作る予定があるので
このての計算については一言あるつもりです。 基本的に勉強不足のような気がします。 月齢計算の基準は新月ではなくて春分です。 まずはグレゴリオ暦とユリウス通日の計算方法を勉強してください。 説明やJavascriptで実施しているサイトも多いので月齢関連の資料は 結構あります。 ユリウス通日について理解ができたら2000年1月1日を基準にして 計算する形になると思います。 現在日の取得部分については今やられている方法でいいと思います
|
momiji | Åê¹ÆNo.19553 投稿日時: 2005-8-21 14:52 |
新米 居住地: 投稿: 3
使用環境:
WindowsXP,FlashMX2004 |
Re: 経過日数計算のActionScript ご指摘ありがとうございます。
現在年月日から算出する簡易計算を利用した方法に切り替えました。 他の待受FLASHへ組み込む為の実験作成だったので、 ケイタイ端末にあまり負荷をかけないように なるべくシンプルな方法をと考えて、逆につまづいていたようです。 経過日数算出については他にいろいろ使い道がありそうなので、引き続きご指導いただけると嬉しいです。 |
Fla4man | Åê¹ÆNo.19629 投稿日時: 2005-8-23 22:35 |
職人 居住地: かまくら 投稿: 517
使用環境:
WinMe,Win2000, Flash4,アズさん,大仏、delphi |
Re: 経過日数計算のActionScript 月齢関連のサンプル(できるだけシンプルにしたもの)はBak@Flaかなんかに投稿しますが
とりあえずちょっと調べなおしたところ GetLocaleShortDate は imodeシミュレータで反応しなかったのと Googleでの探索が GetLocaleShortDate 19 GetDateDay 76 ということで GetDateMonth、GetDateDay、GetDateYearを使う方が無難だとおもいます。 ( ※MX,Flash4,5ユーザーがflasmで作る場合引数1のFscomand2は push 'y' push 'GetDateYear' push '1' FSCommand2 setVariable の構文になります。 ) 通日計算はうるうどしの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 は普通に切り捨てです。(言語によっては四捨五入) 月の 朔望周期は29.53なので適当な日を起点にしてもよいと思うのですが 起点日をSとすると Nday=int(365.25 * y) + int(30.59 * m) +d - 678927 -S で新月からの経過日数が求められます。 月齢Nmoonは Nmoon = Nday % 29.53 でえられます。 月計算の30.59という数字は切り捨てたときにつごうよくなる数字で深い意味はなく 配列を使って加算値を得てもよいと思います。 とりあえずこのスレでのレスはここまでとします。
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |