• ベストアンサー

経過時間待機

Dateオブジェクトを使わずに、 経過時間待機するような関数はありますでしょうか。 なるべくループで待機はやりたくないのですが・・。

  • Flash
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
noname#35109
noname#35109
回答No.1

最も古くからあるものが getTimer です。 http://hakuhin.hp.infoseek.co.jp/main/as/time.html 次に古いのが,書かれている,Dateオブジェクト を使うもので, 次に古いのが setInterval で, http://www.fumiononaka.com/TechNotes/Flash/FN0304001.html 最近増えたのが setTimeout です。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2097299  ↑教えて!goo ↓OKWave (同じです) http://okwave.jp/kotaeru.php3?q=2097299 Dateオブジェクト を使用する物は, 絶対的な「時刻」を取得するときだけに使う物で,待機などにはほとんど使いません。 一番正確なのは,getTimer ですが,これで随時時間を取得するにはループが必要になります。 そう考えると最も汎用的なものは, setInterval だと思います。 何をどう待機するのかわかりませんので,一応関数名と参考URLを回答しておきました。

pokapoka1980
質問者

お礼

早速の回答、感謝です。 CPUパワーを使わない待機があれば・・と思ったのですが、setIntervalが最も近そうですね。 ありがとうございました。

関連するQ&A

  • CPU資源をなるべく消費しないでイベントを待機する

    こんにちは。 VC++2008Exressを使用して、以下のようなプログラムを作成したいと思います。 初心者で、どうやって作成すれば良いのか悩んでおります。 参考になるものなどありましたら、ご教授ください。 Windowsアプリケーション Win32API メッセージループ内でWaitForSingleObjectなどのイベントを待機する関数を使用して イベントを待つようにしたいのですが メッセージループ内でメッセージも待機できイベントも待機できるような方法はないでしょうか? 今のところ、実現はしておりませんが検討しているのは メッセージ待機用のスレッドを作成して、GetMessageで待機して メッセージがきたら、SetEvent関数でメインのメッセージループ内の WaitForSingleObjectを返す。 また、別のメッセージ以外のイベントを監視するスレッドを作成して WaitForSingleObjectで監視してイベントが来たら、さきと同じイベントを SetEvent関数を使用しメインのメッセージループ内のWaitForSingleObjectを返す。 という感じでメッセージとイベントをメッセージループ内で監視するようにするしか 分かりません。 その他、簡単な関数で実現可能なものなどありませんでしょうか? WaitForMultiObjectsとか、MsgWaitForMultiObjectsやら調べてみましたが、いまいち使い方が。。。。 また、スレッドは監視イベントが来るたびに終了させた方がよいのでしょうか? それでは、またスレッド作成を繰り返すので効率悪い気がします。 無限ループで監視させた方が良いのではと思いますが、CPU資源的には・・・。 というようなことで悩んでおります。 どうか、ご教授ください。よろしくお願いします。

  • 経過時間を表示したい

    エクセル2000を使用しています。 1つの作業の始まりから終わりまでの経過時間を算出して、1ヶ月ごとに平均経過時間を表示させるようにしたいのですが、どのような関数を使用したらいいのかわかりません。どうぞ、教えてください。 例えば、 始まり(セルA2)2002/7/29 16:49  終わり(セルB2)2002/8/1 10:24(日付が変わってしまう場合) 始まり(セルA3)2002/8/6  10:07 終わり(セルB2)2002/8/6  13:41(同日の場合) 平均を求める関数は、単純にAVERAGEでよいのでしょうか。 なお、マクロの知識は全くありませんので、エクセルの関数で教えていただけるようお願いします。

  • Excelで経過時間の判定をしたい

    Excel2000で(経過時間)=(終了時刻)-(開始時刻)として時間計算をしています。 この経過時間が、8:30 を超えていれば 1 とし、8:30以下であれば 0 という答えを返させる関数を教えてください。 よろしくお願いします。

  • PICで1μsの待機時間を作りたい

    現在PIC18F2431の制御プログラムを組んでいます。 INTOSC 8M を使って1μsと3μsの待機時間を作りたくて下記のような、空のループを用意しました。 for(i=0; i<1; i++) ; しかしこれではどう頑張っても6μsよりも小さくすることが出来ません。 何か良い方法はないでしょうか? どうかご教授ください

  • 待機時間が暇、何をしよう?

    不規則に待機時間がある状況のとき、何をして時間をつぶしたらいいですか?なお以下のような状況でできることが前提です。  ・待機時間は事前に決まってない  ・待機時間は短い場合もあれば長い場合もある  ・待機時間の長さは(待機に入るときに)ある程度は予測できる  ・屋内にいれば何をしても良い  ・待機終了時間は不明なので、すぐにやめられること  ・事前準備や投資は少ないほうがよい ネット、読書、テレビなどは飽きたので、できればそれ以外の提案をお願いします。ネットや読書でも面白そうなものであればOKです。なお、ゲームはしません。一瞬で終わることでも構いません。とにかく暇つぶしになることや、新しいことがしたいです。

  • Excelで時間経過を表示するには

    今の日付・時間を表示するTODAY関数やNOW関数は、ファイルを開くか、F9キーを押さないとデータを更新しません。なので、例えば、『誕生日まであと何日・・』とか『残り時間はあと何秒・・』というような時間経過が自動更新されながら表示する方法をご教授ください。 関数でできますか?あるいはVBAでプログラミング出来ますか? 宜しくお願いします。

  • 時間を経過させる関数

    この関数は引数xに1000を渡すと1秒の経過をさせる 関数です。 int sleep(unsigned long x) { clock_t c1 = clock(),c2; do { if((c2 = clock()) == (clock_t)-1) return 0; }while(1000.0*(c2-c1)/CLOCKS_PER_SEC<x); return 1; } 質問は3つです。 (1) if((c2 = clock()) == (clock_t)-1) return 0; ・clock()を呼び出し、その結果をc2に代入する。c2が-1だったら、returnする。返却値は0を返す。 つまり、時間の経過中にエラーが起きたら値を返すというものです。 質問としては、「(clock_t)-1」の意味です。「clock_t型から-1を引く?」なぜ-1と等しいのでしょうか? (2) while(1000.0*(c2-c1)/CLOCKS_PER_SEC<x); この文なのですが、なぜc2からc1を引く理由としては ・c1は関数を呼び出した時点の時間であり0秒固定。 ・c2に関しては「上記の不等式が不成立になるまで経過する時間」 と考えてよろしかったでしょうか? (3) また、上記の文の不等式の右辺のxは単位がミリ秒なので、不成立になるには、不等 式の左側は「関数呼び出しから現在までの経過時間(ミリ秒)」になるはずです。 左辺は最初に(c2-c1)を1000倍をしてそこからCLOCKS_PER_SECという 一秒あたりのクロック数(1000)を割っているのでc2やc1は最初から ミリ秒の単位がclock()で渡されるということなのでしょうか? お手数ですがよろしくお願いします。

  • C#経過時間の求め方

    C#経過時間の求め方 お世話になっております。 初歩的な質問かもしれないので申し訳ないのですが、 やり方がわからなかったため質問させていただきます。 現在日時から定義の時間を引いた経過時間を求めたいのですが、やり方がわかりません。 現在、以下のようにやっているのですが、 データ型の規定を外れてしまうためエラーになってしまいます。 --------------------------------------------- string date = "2010/09/25"; string time = "13:00:00"; string[] b = {}; string[] c = {}; DataTime a; b = date.Split('/'); c = time.Split(':'); a = DateTime.Now.AddYears(-int.Parse(b[0])); a = DateTime.Now.AddMonths(-int.Parse(b[1])); a = DateTime.Now.Add(new TimeSpan(-int.Parse(b[2]), -int.Parse(c[0]), -int.Parse(c[1]), -int.Parse(c[2]))); --------------------------------------------- 経過時間を求めたいので、 ○時間○分だけでも表示できるようにしておきたいです。 何か適切な方法はありませんでしょうか? ご回答頂ければありがたく思います。 宜しくお願い致します。

  • 寝ていると時間の経過が分からないのは何故ですか?

    寝ていると時間の経過が分からないのは何故ですか?

  • 経過時間について

    こんにちは 経過時間を0から表示して、ボタンが押されたら経過時間の計測・表示をストップし次のフレームに行き、また0から経過時間を表示したいのですが、どうすればいいでしょうか? 時間を表示させるdisptime.textとbtnというボタンをステージに配置しています。↓いろいろ試してみたのですが、フレーム移動した際に経過時間を0から表示させる方法がわかりません。。 flash8を使っています。 stop(); startflag=true; this.onEnterFrame=function(){ if(startflag==true){ starttime=getTimer(); keika=getTimer();-starttime; disptime.text=Math.floor(keika/1000); } }; btn.onRelease = function(){ startflag=false; nextFrame(); };

    • ベストアンサー
    • Flash

専門家に質問してみよう