4个字节,表示年月日时分秒秒占D0-D5位,分占D6-D11,依次类推这怎么排啊
比如07-07 10:11:15 怎么用四个字节发送出去?接收进来又怎么解析出来?谢谢

解决方案 »

  1.   

    秒占D0-D5位,分占D6-D11,时占D12-D16,日占D17-D21,月占D22-D25,年占D26-D31...
    其他都没什么,就是年那部分比较麻烦,要自己定个协议
      

  2.   

    数据分配:
    年 6 bits  0-63
    月 4 bits  0-12(15)
    日 5 bits  0-31
    时 5 bits  0-23(31)
    分 6 bits  0-59(63)
    秒 6 bits  0-59(63)实际字节分配:
    Byte0      bit7-bit2 年  bit1-bit0 月的高 2 bit
    Byte1      bit7-bit6 月的低 2 bit, bit5-bit1 日, bit0 时的最高位
    Byte2      bit7-bit4 时的低 4 bit, bit3-bit0 分的高 4 bit
    Byte3      bit7-bit6 分的高 2 位, bit5-bit0 秒Dim y As Integer, m As Integer, d As Integer, h As Integer, n As Integer, s As IntegerDim strDate As String, bytArr(3) As Byte'Encode
    Private Sub Command1_Click()
    strDate = "06-07-07 10:11:15"
    y = Year(strDate) Mod 100
    If y > 63 Then
        MsgBox "年超出表示范围!"
        Exit Sub
    End If
    m = Month(strDate)
    d = Day(strDate)
    h = Hour(strDate)
    n = Minute(strDate)
    s = Second(strDate)bytArr(0) = y * 4 + m \ 4
    bytArr(1) = (m Mod 4) * 64 + d * 2 + h \ 16
    bytArr(2) = (h Mod 16) * 16 + n \ 4
    bytArr(3) = (n Mod 4) * 64 + s
           
    Debug.Print bytArr(0), bytArr(1), bytArr(2), bytArr(3)
    End Sub'Decode
    Private Sub Command2_Click()
    y = bytArr(0) \ 4
    m = (bytArr(0) Mod 4) * 4 + bytArr(1) \ 64
    d = (bytArr(1) Mod 64) \ 2
    h = (bytArr(1) Mod 2) * 16 + bytArr(2) \ 16
    n = (bytArr(2) Mod 16) * 4 + bytArr(3) \ 64
    s = bytArr(3) Mod 64Debug.Print y & "-" & m & "-" & d & " " & h & ":" & n & ":" & s
    Debug.Print Format(y & "-" & m & "-" & d & " " & h & ":" & n & ":" & s, "yyyy-mm-dd HH:nn:ss")
    End Sub
      

  3.   

    另一个可以试试的方法是用dateserial和timeserial
    不过没有vb,试不了。。