Re[3]: うちだけでしょうか?


[コメントツリー表示を見る] [発言時刻順表示を見る]

Posted by Uz on 2001/08/17 02:44:09

In Reply to: Re[2]: うちだけでしょうか? Posted by 麻生英亜 on 2001/08/16 23:56:06


    > 一行ずつトラップしてみたところ
    > > 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


記事スレッド一覧