C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: mm秒単位までの時間を取得


(過去ログ 86 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■51294 / inTopicNo.1)  mm秒単位までの時間を取得
  
□投稿者/ VB533151 (8回)-(2010/07/01(Thu) 11:28:13)

分類:[.NET 全般] 

2010/07/01(Thu) 11:44:41 編集(投稿者)

【環境 VB6】

お世話になります。

ある処理の時間を計測したいため、
以下の仕組みで計測しています。

Dim StrTime, StpTime As SYSTEMTIME
StrTime = Format(Time,"hh:mm:ss.fff")

#問題の処理

StpTime = Format(Time,"hh:mm:ss.fff")
StpTime = StpTime - StrTime

MsgBox "問題の処理は" & Second(StpTime) & "秒 でした"

<質問>
mm秒単位までの時間を取得し、処理時間を計測するのは
どのようにすれば宜しいでしょうか?

またMsgBoxでは無く、テキスト出力するにはどうすれば宜しいでしょうか?
引用返信 編集キー/
■51296 / inTopicNo.2)  Re[1]: mm秒単位までの時間を取得
□投稿者/ みきぬ (933回)-(2010/07/01(Thu) 11:46:49)
mm秒って…何?
引用返信 編集キー/
■51299 / inTopicNo.3)  Re[1]: mm秒単位までの時間を取得
□投稿者/ はつね (1295回)-(2010/07/01(Thu) 11:51:09)
No51294 (VB533151 さん) に返信
> mm秒単位までの時間を取得し、処理時間を計測するのは
> どのようにすれば宜しいでしょうか?
Dim t1 As Integer = System.Environment.TickCount
'ここに処理
t1 = System.Environment.TickCount - t1

> またMsgBoxでは無く、テキスト出力するにはどうすれば宜しいでしょうか?
MessageBox.showではなくテキストファイルに出力するコードにすればよいかと。
# 変数の値をテキストファイルに出力する方法についてはヘルプや
# ネット上の情報を調べて、分からないところがあったらまた質問
# してください。
引用返信 編集キー/
■51302 / inTopicNo.4)  Re[2]: mm秒単位までの時間を取得
□投稿者/ みきぬ (934回)-(2010/07/01(Thu) 13:31:49)
No51299 (はつね さん) に返信
> ■No51294 (VB533151 さん) に返信
>>mm秒単位までの時間を取得し、処理時間を計測するのは
>>どのようにすれば宜しいでしょうか?
> Dim t1 As Integer = System.Environment.TickCount
> 'ここに処理
> t1 = System.Environment.TickCount - t1
>
VB6 はよく知らないけど、System.Environment.TickCount ってのがあるの?
引用返信 編集キー/
■51305 / inTopicNo.5)  Re[3]: mm秒単位までの時間を取得
□投稿者/ よねKEN (533回)-(2010/07/01(Thu) 14:13:29)
よねKEN さんの Web サイト
No51302 (みきぬ さん) に返信
> ■No51299 (はつね さん) に返信
>>■No51294 (VB533151 さん) に返信
> >>mm秒単位までの時間を取得し、処理時間を計測するのは
> >>どのようにすれば宜しいでしょうか?
>>Dim t1 As Integer = System.Environment.TickCount
>>'ここに処理
>>t1 = System.Environment.TickCount - t1
>>
> VB6 はよく知らないけど、System.Environment.TickCount ってのがあるの?

VB6にはありません。.NET以降の話ですね。

時系列に投稿と投稿の編集時間を並べての推測ですが、
「2010/07/01(Thu) 11:44:41 編集(投稿者)

【環境 VB6】」

と質問にあるので、最初は「【環境 VB6】」という記述がなくて、
投稿者が修正して追記する前に、はつねさんは投稿されたのではないでしょうか?

#修正箇所が環境の記述かどうかは確証はありませんけどね



引用返信 編集キー/
■51307 / inTopicNo.6)  Re[1]: mm秒単位までの時間を取得
□投稿者/ 魔界の仮面弁士 (1688回)-(2010/07/01(Thu) 16:41:58)
No51294 (VB533151 さん) に返信
> 【環境 VB6】
> Dim StrTime, StpTime As SYSTEMTIME
StrTime にも As を付けましょう。

> StrTime = Format(Time,"hh:mm:ss.fff")
fff でミリ秒(msec)は表せません。そもそも、VB6 の Date型は
1秒単位の精度までしか保証されていません。


> StpTime = Format(Time,"hh:mm:ss.fff")
> StpTime = StpTime - StrTime
高い精度が必要なのであれば APIを使うことになりますが
手抜き実装として、Timer関数を使う手法もあります。

Timer関数は午前0時からの経過秒を返すものですが、
ここには秒未満の精度も小数値で保持されていますので
その差を求めれば、経過秒数を小数込みで得られます。

ただし、Timerの値は24時を過ぎると0に戻るため
Now ないしは Date と組み合わせて利用することになります。


# ちなみに、Win95無印 for PC-9800 の場合には、
# Mate 系の一部機種において、Timer が秒単位の精度に
# なる可能性がありました。まぁ、今となっては
# 気にする必要は無い話でしょうけれども。


> mm秒単位までの時間を取得し
ミリメートル秒と読めてしまいましたが…ミリ秒の意味ですよね?

> またMsgBoxでは無く、テキスト出力するにはどうすれば宜しいでしょうか?
やりかたはいろいろありますが、たとえば
テキストモードでの App.LogEvent メソッドとか。
引用返信 編集キー/
■51308 / inTopicNo.7)  Re[4]: mm秒単位までの時間を取得
□投稿者/ はつね (1296回)-(2010/07/01(Thu) 17:13:23)
No51305 (よねKEN さん) に返信
>>VB6 はよく知らないけど、System.Environment.TickCount ってのがあるの?
>
> VB6にはありません。.NET以降の話ですね。

あれ?VB6の話になってる

VB6だとしたら
> Dim StrTime, StpTime As SYSTEMTIME
はStrTimeがVariant型。


引用返信 編集キー/
■51318 / inTopicNo.8)  Re[5]: mm秒単位までの時間を取得
□投稿者/ 魔界の仮面弁士 (1689回)-(2010/07/01(Thu) 20:50:32)
No51308 (はつね さん) に返信
>>> 分類:[.NET 全般] 
>>> 【環境 VB6】
> あれ?VB6の話になってる
分類選択を間違ってしまったのでしょうかね。


とりあえず、現在の秒未満の部分は
 Dim x As Single
 x = Timer - Fix(Timer)
あるいは、
 x = Timer - DateDiff("s", Empty, Time)
で小数値として得られます。

もし、より高い精度が必要な場合には、timeGetTime API を使ってみてください。
http://hanatyan.sakura.ne.jp/vbhlp/GetTime.htm
http://www.sm.rim.or.jp/~shishido/tick.html
http://www.emit.jp/prog/prog_t1.html


> VB6だとしたら
>>Dim StrTime, StpTime As SYSTEMTIME
> はStrTimeがVariant型。
As 句が省略されていた場合、その型は「既定の型」となります。
これは初期設定では Variant 型ですが、別の型を既定の型とする事もできますね。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -