VB获取时间

来源:互联网 发布:sp版羽毛球拍淘宝店 编辑:程序博客网 时间:2024/06/11 18:59

在机房收费系统中,时间不统一是很麻烦。尤其是时间格式不统一。

在vb机房收费系统中有几种获取时间的方法。

一,使用date和time获取电脑时间,这种事件往往因为人为原因而不统一。当然也有其好处,就是简单。

 

Print Date; "日期"

Print Time; "时间"

Print Now; "日期和日间"

Print Format(Now, "yyyy年mm月dd日hh时mm分ss秒")

Print Year(Now); "年"

Print Month(Now); "月"

Print Day(Now); "日"

Print Hour(Now); "时"

Print Minute(Now); "分"

Print Second(Now); "秒"

 

 

二是。利用网络来获取时间,这种往往是很不方便。要在有网的时候才能使用。听不实际的。用XMLHTTP随机访问一个网站可以获取时间。

(此过程我是借用他人代码,不是很明白,但是方法值得认识一下。不过个人感觉复杂)

Dim obj, OBJStatus, Url, GetText, i

Dim Retrieval

   Url = "http://www.163.com"

   '判断网络是否连接

   If Url <> "" Then

        Set Retrieval =GetObject("winmgmts:\\.\root\cimv2")

        Set obj =Retrieval.ExecQuery("Select * From Win32_PingStatus Where Address ='" & Mid(Url, 8) & "'")

        For Each OBJStatus In obj

            If IsNull(OBJStatus.StatusCode) OrOBJStatus.StatusCode <> 0 Then

                Exit Sub

            Else

                Exit For '已连接则继续

            End If

        Next

   End If

   

   '通过下载网页头信息获取网络时间

   Set Retrieval = CreateObject("Microsoft.XMLHTTP")

   With Retrieval

        .Open "Get", Url, False,"", ""

        .setRequestHeader"If-Modified-Since", "0"

        .setRequestHeader"Cache-Control", "no-cache"

        .setRequestHeader "Connection","close"

        .Send

        If .Readystate <> 4 Then Exit Sub

        GetText = .getAllResponseHeaders()

        i = InStr(1, GetText,"date:", vbTextCompare)

        If i > 0 Then '网页下载成功

            i = InStr(i, GetText,",", vbTextCompare)

            GetText = Trim(Mid(GetText, i + 1))

            i = InStr(1, GetText, "GMT", vbTextCompare)

            GetText = Left(GetText, i - 1)

            MsgBox "网络时间:"& GetText

        End If

        MsgBox "网络时间:"& GetText

   End With

   Set Retrieval = Nothing

   Set OBJStatus = Nothing

   Set obj = Nothing

 

三,利用winsock控件来获取时间。(窗体上放一个WINSOCK控件)。

编辑WINSOCK控件的DataArrival过程。

 

 

四,使用SQL的GetDate函数来获取时间。自定义一个函数。

 

   SqlTime = "select getdate()"

   

   Set MrcTime = ExecuteSQL(SqlTime, MsgTime)

 

0 0