トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     世界標準時から9時間30分プラス
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
tabasa
Åê¹ÆNo.16358
投稿日時: 2005-3-29 15:10
新米
居住地:
投稿: 10
使用環境:
iMac 1.8Ghz
OS10.3.8
Ram 1.256Ghz
Flash MX2004
世界標準時から9時間30分プラス
世界標準時から9時間30分プラス(アデレードです)のデジタル時計なのですが、分に30分を加えてしまうと60分以降が61分、62分と表示されてしまうため、強引に60分以上だと-60にして回避しているのですが・・・なんかもっとスマートな方法ってありますでしょうか? とっても基本的な質問ですみませんm(_ _)m

objDate = new Date();
hours = objDate.getUTCHours()+9;
minutes = objDate.getUTCMinutes()+30;
if (hours<10) {
hours = "0"+hours;
}
if (minutes<10) {
minutes = "0"+minutes;
}
if (minutes>=60) {
minutes = minutes-60;
hours = hours+1;
}

また、上記スクリプトでminutes = minutes-60;の部分をminutes = "0"+minutes-60;にするとたとえば日本時間で30分になったときに12分と表示されてしまいますが、何が原因なのか分かりませんのでご教授願います。
森 巧尚
Åê¹ÆNo.16359
投稿日時: 2005-3-29 15:29
モデレータ
居住地: 宝塚
投稿: 650
使用環境:
.5/CS4/Safari3
XP+2000//IE6
Re: 世界標準時から9時間30分プラス
引用:

tabasaさんは書きました:
世界標準時から9時間30分プラス(アデレードです)のデジタル時計なのですが、分に30分を加えてしまうと60分以降が61分、62分と表示されてしまうため、強引に60分以上だと-60にして回避しているのですが・・・なんかもっとスマートな方法ってありますでしょうか?

「世界標準時に9時間30分足したDateオブジェクト」を作って、そのローカル時間からgetし直すという方法もあります。
objDate = new Date();
year = objDate.getUTCFullYear();
month = objDate.getUTCMonth();
date = objDate.getUTCDate();
hours = objDate.getUTCHours() + 9;
minutes = objDate.getUTCMinutes() + 30;
newDate = new Date(year, month, date, hours, minutes);
hours = newDate.getHours();
minutes = newDate.getMinutes();


引用:
minutes = "0"+minutes-60;にすると

これは文法的におかしいですね。
"0"は「文字列」で、minutesと60は「数字」です。
minutes - 60を先に計算してその先頭に"0"の文字を足したいのであれば、
"0" + (minutes - 60)
とかっこを使えばいいのではないでしょうか。


----------------
森 巧尚
http://www.ymori.com

SeeDa!!
Åê¹ÆNo.16361
投稿日時: 2005-3-29 16:51
職人
居住地: Nagoya
投稿: 221
使用環境:
WinXP
Flash CS4
au:W33SA?
Re: 世界標準時から9時間30分プラス
計算結果がおかしいと思って一度削除しましたが、アデレードって日本と30分しか時差がないんですね
Dateオブジェクトに、setTimeするとスマートです。
objDate = new Date();
myDate = objDate.getTime();	// 世界標準時をミリ秒で得る
myDate += (9*60+30)*60*1000;	// 世界標準時に9:30加える
objDate.setTime(myDate);	// 修正後の時刻をobjDateにセット	
hours = objDate.getUTCHours();
minutes = objDate.getUTCMinutes();
if (hours<10) {
	hours = "0"+hours;
}
if (minutes<10) {
	minutes = "0"+minutes;
}
trace(hours+':'+minutes);
tabasa
Åê¹ÆNo.16367
投稿日時: 2005-3-29 18:49
新米
居住地:
投稿: 10
使用環境:
iMac 1.8Ghz
OS10.3.8
Ram 1.256Ghz
Flash MX2004
Re: 世界標準時から9時間30分プラス
おぉ?なんと素早いレス!
ありがとうございましたm(_ _)m

自分でもチクチクと改良を加えてどうにか適切に表示されるようにしたのですが・・・やっぱり応用力が貧困だとスクリプトがみっともないですね・・・。
時計ごときでこんだけ悩むようじゃぁ・・・先は長いなぁ・・・。
早くこのレベル(if構文の乱用)から抜け出さねば!

objDate = new Date();
hours = objDate.getUTCHours()+9;
minutes = objDate.getUTCMinutes()+30;
if (hours<10) {
	hours = "0"+hours;
}
if (minutes<10) {
	minutes = "0"+minutes;
}
if (minutes>=60) {
		if (minutes < 70) {
		minutes = "0" + (minutes - 60);
		hours = hours+1;
		} else {
		minutes = minutes - 60;
		hours = hours+1;
		} 
}
fullhour = hours+":"+minutes;
野中文雄
Åê¹ÆNo.16372
投稿日時: 2005-3-29 19:37
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 世界標準時から9時間30分プラス
9時間加算した後処理が抜けています。
引用:
tabasaさんは書きました:
// objDate = new Date();
objDate = new Date(2005, 2, 29, 8, 0);
hours = objDate.getUTCHours()+9;
minutes = objDate.getUTCMinutes()+30;
if (hours<10) {
    hours = "0"+hours;
}
if (minutes<10) {
    minutes = "0"+minutes;
}
if (minutes>=60) {
        if (minutes < 70) {
        minutes = "0" + (minutes - 60);
        hours = hours+1;
        } else {
        minutes = minutes - 60;
        hours = hours+1;
        } 
}
fullhour = hours+":"+minutes;  // 結果: 32:30

少し修正してみました。
objDate = new Date();
hours = objDate.getUTCHours()+9;
minutes = objDate.getUTCMinutes()+30;
hours = (hours+Math.floor(minutes/60))%24;
minutes %= 60;
fullhour = String(100+hours).substr(1)+":"+String(100+minutes).substr(1);


----------------
 

森 巧尚
Åê¹ÆNo.16375
投稿日時: 2005-3-29 20:24
モデレータ
居住地: 宝塚
投稿: 650
使用環境:
.5/CS4/Safari3
XP+2000//IE6
Re: 世界標準時から9時間30分プラス
引用:

野中文雄さんは書きました:
9時間加算した後処理が抜けています。

そうそう。
「objDate.getUTCMinutes()+30」が、60を越えたときの処理はしていますが、
「objDate.getUTCHours() + 9」が、24を越えたときの処理をしていないので、
25時とか32時とかになってしまいますから、時間の処理も必要ですね。

ちなみに私の方法でもこの対応はできてます。
私のはFlashに時間計算をまかせてますけど、野中さんのはちゃんと計算して求めてるんですね。


----------------
森 巧尚
http://www.ymori.com

tabasa
Åê¹ÆNo.16386
投稿日時: 2005-3-30 6:49
新米
居住地:
投稿: 10
使用環境:
iMac 1.8Ghz
OS10.3.8
Ram 1.256Ghz
Flash MX2004
Re: 世界標準時から9時間30分プラス
ツッコミ所が多発・・・もう自分が情けないっすね。
Flash・・・めげそう。
それにしても、デジタル時計一つでここまでアドバイスいただけるとは、ありがたいことです。
感謝いたしますm(_ _)m

なるべく「美しいhtml」を記述しようと配慮はしているのですが、Flashはまだ「美しいAction Script」にはほど遠いです。

まずは引き出しを増やさねば!
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops