[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2005/06/16(Thu) 18:08
投稿者名:tomo
URL :
タイトル:
SYSTEMTIMEの取得時の不思議な点
VBを始めて1年くらいのものです。

作成したプログラムでシステム日付を取得しているのですが、その方法に
GetSystemTimeの関数を使用しています。
取得したいスタイルは、「yyyy/mm/dd hh:mm:ss,mmm」
(mmmは1000分の1秒)なのですが、たまに、時間のところが「32:32:26,450」の
ようになってしまいます(hhが'32'のように、24時以降のものになってしまう)。

このような現象が起こるとは考えづらいのですが、このようになる要因を
何かご存知の方がいらしたら、ご教授いただけないでしょうか?

以下にプログラムを記します。よろしくお願いいたします。


--------
Public Declare Sub GetSystemTime Lib "kernel32" (lpSystemTimeLib As SYSTEMTIME)

--------
Public ProcTime As String      '取得時刻の格納用変数                                    

--------
Public Function GetCurrentTime()
    
    Dim ReqProcTime As SYSTEMTIME

    Call GetSystemTime(ReqProcTime)
    
    ProcTime = CStr(ReqProcTime.wYear) & "/" & CStr(ReqProcTime.wMonth) &
amp; "/" & _
                CStr(ReqProcTime.wDay) & " " & CStr(ReqProcTime.whour + 9
) & ":" & _
                CStr(ReqProcTime.wMinnit) & ":" & CStr(ReqProcTime.wSecon
d) & "," & _
                CStr(ReqProcTime.wMilliSecconds)
                
End Function

投稿時間:2005/06/16(Thu) 18:34
投稿者名:tomo
URL :
タイトル:
Re: SYSTEMTIMEの取得時の不思議な点
下記を投稿したtomoです。
プログラム作成環境を記述するのを忘れました。

作成環境は。。。
VB6 SP5
OSはWindows2000です。

よろしくお願いします。


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


> VBを始めて1年くらいのものです。
>
> 作成したプログラムでシステム日付を取得しているのですが、その方法に
> GetSystemTimeの関数を使用しています。
> 取得したいスタイルは、「yyyy/mm/dd hh:mm:ss,mmm」
> (mmmは1000分の1秒)なのですが、たまに、時間のところが「32:32:26,450」の
> ようになってしまいます(hhが'32'のように、24時以降のものになってしまう)。
>
> このような現象が起こるとは考えづらいのですが、このようになる要因を
> 何かご存知の方がいらしたら、ご教授いただけないでしょうか?
>
> 以下にプログラムを記します。よろしくお願いいたします。
>
>
> --------
> Public Declare Sub GetSystemTime Lib "kernel32" (lpSystemTimeLib As SYSTEMTIME
)
>
> --------
> Public ProcTime As String      '取得時刻の格納用変数                                    
>
> --------
> Public Function GetCurrentTime()
>    
>     Dim ReqProcTime As SYSTEMTIME
>
>     Call GetSystemTime(ReqProcTime)
>    
>     ProcTime = CStr(ReqProcTime.wYear) & "/" & CStr(ReqProcTime.wMonth
) &
> amp; "/" & _
>                 CStr(ReqProcTime.wDay) & " " & CStr(ReqProcTime.whour
+ 9
> ) & ":" & _
>                 CStr(ReqProcTime.wMinnit) & ":" & CStr(ReqProcTime.wSe
con
> d) & "," & _
>                 CStr(ReqProcTime.wMilliSecconds)
>                
> End Function

投稿時間:2005/06/16(Thu) 18:51
投稿者名:だい
Eメール:dee_bassist@hotmail.com
URL :
タイトル:
Re: SYSTEMTIMEの取得時の不思議な点
> (mmmは1000分の1秒)なのですが、たまに、時間のところが「32:32:26,450」の
> ようになってしまいます(hhが'32'のように、24時以降のものになってしまう)。

それは、おそらく、

>                 CStr(ReqProcTime.wDay) & " " & CStr(ReqProcTime.whour
+ 9

無条件に9を加算しているからではありませんか(15時⇒24時、18時⇒27時と表示)?

ご参考まで。
hhttp://homepage2.nifty.com/Dee/vb/tips/vb/getmillisec.html

投稿時間:2005/06/16(Thu) 19:26
投稿者名:tomo
URL :
タイトル:
Re^2: SYSTEMTIMEの取得時の不思議な点
だい 様

ご指摘ありがとうございます。
なんでこんなことにきづかなかったのだろう・・・
あぁ恥ずかしい・・・

本当にありがとうございました!




> > (mmmは1000分の1秒)なのですが、たまに、時間のところが「32:32:26,450」の
> > ようになってしまいます(hhが'32'のように、24時以降のものになってしまう)。
>
> それは、おそらく、
>
> >                 CStr(ReqProcTime.wDay) & " " & CStr(ReqProcTime.w
hour
> + 9
>
> 無条件に9を加算しているからではありませんか(15時⇒24時、18時⇒27時と表示)?
>
> ご参考まで。
> hhttp://homepage2.nifty.com/Dee/vb/tips/vb/getmillisec.html