> 一行ずつトラップしてみたところ > > nDays = nTransmitTimeStampSeconds \ 86400@ > > nSecs = nTransmitTimeStampSeconds Mod 86400@ > 上記の2行でエラーが起こっているようです > ちなみに値ですが > nTransmitTimeStampSecondsが997973442 > nDaysが11550 > nSecsが53442 > でした 通貨型なんで、桁数的にはOKだと思うのですがね。 ひょっとすると¥やModは整数を返すので、Longになってしまい、 あふれてるのかも?(でも、VB6は大丈夫やし、VB5でもデバッグ 環境やったらOKちゅうのも、なんか変。)
次の関数を以下のように変えてみたらどうでしょうか。
Private Sub wscSock_DataArrival(ByVal bytesTotal As Long) Dim A() As Byte Dim sVal As String Dim nTransmitTimeStampSeconds As Currency Dim dteTime As Date Call wscSock.GetData(A()) nTransmitTimeStampSeconds = CCur(A(40)) * 2 ^ (8 * 3) + CCur(A(41)) * 2 ^ (8 * 2) + CCur(A(42)) * 2 ^ 8 + CCur(A(43)) 'Debug.Print DateDiff("s", "1900/01/01 00:00:00", "1990/01/01 00:00:00") 'nTransmitTimeStampSeconds = nTransmitTimeStampSeconds - 2208988800@ ' 1970/01/01からの秒数に nTransmitTimeStampSeconds = nTransmitTimeStampSeconds - 2840140800@ ' 1990/01/01からの秒数に dteTime = CDate(DateAdd("s", nTransmitTimeStampSeconds, "1990/01/01 00:00:00")) txtTime.Text = Format(dteTime, "yyyy/mm/dd hh:nn:ss") dteTime = DateAdd("h", 9, dteTime) txtJapan.Text = Format(dteTime, "yyyy/mm/dd hh:nn:ss") Call wscSock.Close End Sub
> VB5はMe未対応ですか(^^;) 正式には。対応表↓ http://www.microsoft.com/japan/developer/vstudio/techinfo/toolos.htm
|