`
bardo
  • 浏览: 372044 次
  • 性别: Icon_minigender_1
  • 来自: 上海
博客专栏
D1407912-ab64-3e76-ae37-b31aa4afa398
浅述PHP设计模式
浏览量:11611
9d6df9f7-91da-3787-a37c-0e826525dd5d
Zend Framewor...
浏览量:9978
85b628bd-a2ed-3de2-a4b1-0d34985ae8b6
PHP的IDE(集成开发环...
浏览量:9333
社区版块
存档分类
最新评论

在VB中得到C语言函数time(&lnow )得到的数据

    博客分类:
  • VB
阅读更多
在VB中得到C语言函数time(&lnow )得到的数据 ( 2006-10-18 15:30 )

VB中只能操作自己的DATE类型,同时,API操作也仅有SYSTEMTIME,FILETIME这两个类型可以操作,要得到C语言中的 time_t 这一类型的数据,确实很费脑筋。

然而,你不可能要求DLL编写者都了解VB,都提供VB可用的参数。为此,我们只能想法在VB中解决。

要解决这一问题,必须要解决的是:GMTTIME,UTCTIME之间的转换的问题。

以下是VB源码:

Option Explicit

'===============================================================================
'   Constants
'===============================================================================

Private Const TIME_ZONE_ID_INVALID = &HFFFFFFFF
Private Const TIME_ZONE_ID_UNKNOWN = 0
Private Const TIME_ZONE_ID_STANDARD = 1
Private Const TIME_ZONE_ID_DAYLIGHT = 2

'===============================================================================
'   Types
'===============================================================================
Private Type SYSTEMTIME
   wYear                   As Integer
   wMonth                  As Integer
   wDayOfWeek              As Integer
   wDay                    As Integer
   wHour                   As Integer
   wMinute                 As Integer
   wSecond                 As Integer
   wMilliseconds           As Integer
End Type

Private Type FILETIME                            ' Win32 date
   dwLowDateTime           As Long
   dwHighDateTime          As Long
End Type

Private Type TIME_ZONE_INFORMATION
   Bias                    As Long
   StandardName(63)        As Byte
   StandardDate            As SYSTEMTIME
   StandardBias            As Long
   DaylightName(63)        As Byte
   DaylightDate            As SYSTEMTIME
   DaylightBias            As Long
End Type

'===============================================================================
'   Private Members
'===============================================================================

'===============================================================================
'   Declares
'===============================================================================
Private Declare Function FileTimeToLocalFileTime Lib "kernel32" _
   (lpFileTime As FILETIME, lpLocalFileTime As FILETIME) As Long

Private Declare Function FileTimeToSystemTime Lib "kernel32" _
   (lpFileTime As FILETIME, lpSystemTime As SYSTEMTIME) As Long

Private Declare Function SystemTimeToFileTime Lib "kernel32" _
   (lpSystemTime As SYSTEMTIME, lpFileTime As FILETIME) As Long

Private Declare Function LocalFileTimeToFileTime Lib "kernel32" _
   (lpLocalFileTime As FILETIME, lpFileTime As FILETIME) As Long
  


Friend Function UtcToLocalFileTime(FILETIME As FILETIME) As FILETIME
'===============================================================================
'   UtcToLocalFileTime - Converts local FILETIME to UTC/GMT FILETIME.
'===============================================================================

   Dim Success     As Boolean

   ' Exit if null date supplied.
   If FILETIME.dwHighDateTime = 0 And FILETIME.dwLowDateTime = 0 Then
       Exit Function
   End If

   ' Convert to local time
   Success = FileTimeToLocalFileTime(FILETIME, UtcToLocalFileTime)
   Debug.Assert Success

End Function

Friend Function UtcFromLocalFileTime(FILETIME As FILETIME) As FILETIME
'===============================================================================
'   UtcFromLocalFileTime - Converts UTC/GMT FILETIME to a local FILETIME.
'===============================================================================

   Dim Success     As Boolean

   ' Exit if null date supplied.
   If FILETIME.dwHighDateTime = 0 And FILETIME.dwLowDateTime = 0 Then
       Exit Function
   End If

   ' Convert to UTC time
   Success = LocalFileTimeToFileTime(FILETIME, UtcFromLocalFileTime)
   Debug.Assert Success

End Function

Friend Function FileTimeToDate(FILETIME As FILETIME) As Date
'===============================================================================
'   FileTimeToDate - Converts FILETIME structure to a VB Date data type.
'
'   NOTE: The FILETIME structure is a structure of 100-nanosecond intervals since
'   January 1, 1601.  The VB Date data type is a floating point value Where the
'   value to the left of the decimal is the number of days since December 30,
'   1899, and the value to the right of the decimal represents the time. the
'   hour of the time value can be calculated by multiplying by 24, with the
'   remainder multiplied by 60 to get the minutes, and that remainder can then
'   be multiplied by 60 to get the seconds.
'
'
'   FileTime            The FILETIME structure to convert.
'
'   RETURNS             A date/time value in the intrinsic VB Date data type.
'
'===============================================================================

   Dim Success     As Boolean
   Dim SysTime     As SYSTEMTIME

   Success = FileTimeToSystemTime(FILETIME, SysTime)
   Debug.Assert Success

   ' Create a date/time value from the system time parts
   With SysTime
       FileTimeToDate = DateSerial(.wYear, .wMonth, .wDay) + _
           TimeSerial(.wHour, .wMinute, .wSecond)
   End With

End Function

Friend Function FileTimeFromDate(FromDate As Date) As FILETIME
'===============================================================================
'   FileTimeFromDate - Converts a VB Date data type to a FILETIME structure.
'
'   NOTE: The FILETIME structure is a structure of 100-nanosecond intervals since
'   January 1, 1601.  The VB Date data type is a floating point value Where the
'   value to the left of the decimal is the number of days since December 30,
'   1899, and the value to the right of the decimal represents the time. the
'   hour of the time value can be calculated by multiplying by 24, with the
'   remainder multiplied by 60 to get the minutes, and that remainder can then
'   be multiplied by 60 to get the seconds.
'
'
'   FromDate            The VB DAte to convert.
'
'   RETURNS             A date/time value in the native Win32 FILETIME structure.
'
'===============================================================================

   Dim Success     As Boolean
   Dim SysTime     As SYSTEMTIME

   ' Create SYSTEMTIME from each date part in a date/time value.
   With SysTime
       .wYear = Year(FromDate)
       .wMonth = Month(FromDate)
       .wDay = Day(FromDate)
       .wHour = Hour(FromDate)
       .wMinute = Minute(FromDate)
       .wSecond = Second(FromDate)
   End With

   ' convert the SYSTEMTIME to the FILETIME
   Success = SystemTimeToFileTime(SysTime, FileTimeFromDate)
   Debug.Assert Success

End Function

Public Function UtcToLocalTime(ByVal UtcTime As Date) As Date
'===============================================================================
'   UtcToLocalTime - Converts UTC/GMT time to local time.
'===============================================================================

   Dim FILETIME        As FILETIME

   FILETIME = FileTimeFromDate(UtcTime)
   FILETIME = UtcToLocalFileTime(FILETIME)
   UtcToLocalTime = FileTimeToDate(FILETIME)

End Function

Public Function UtcFromLocalTime(ByVal LocalTime As Date) As Date
'===============================================================================
'   UtcFromLocalTime - Converts local time to UTC/GMT time.
'===============================================================================

   Dim FILETIME        As FILETIME

   FILETIME = FileTimeFromDate(LocalTime)
   FILETIME = UtcFromLocalFileTime(FILETIME)
   UtcFromLocalTime = FileTimeToDate(FILETIME)

End Function

Public Function GetUTCLongTime() As Long

   Dim UtcDate As Date
   Dim UTCLongTime As Long
   
   UtcDate = UtcFromLocalTime(Now())
  
   UTCLongTime = DateDiff("s", "1970-01-01 00:00:00", UtcDate)
  
   GetUTCLongTime = UTCLongTime
   
End Function

将此代码存为CLASS文件名为CGUSTime

然后,你即可以:

         Dim lnow As Long

         Dim Gus As CGUSTime
        
         Set Gus = New CGUSTime
        
         lnow = Gus.GetUTCLongTime()
        
         Set Gus = Nothing

那么,这里得到的lnow 与C语言中 time(&lnow )数值是一样的。
分享到:
评论

相关推荐

    单片机开发资源:基于51单片机的开发程序

    单片机开发资源,基于51单片机的开发程序,供学习参考。

    node-v9.4.0-linux-armv7l.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    基于固件库新建工程模板工程源码

    【工程源码】

    node-v9.1.0-linux-ppc64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    node-v8.9.0-linux-armv7l.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    2024-2030中国板端光伏连接器市场现状研究分析与发展前景预测报告.docx

    2024-2030中国板端光伏连接器市场现状研究分析与发展前景预测报告

    基于QT+C++实现的随机图形验证码,带有一些可人的交互与动画+源码

    用法链接:https://menghui666.blog.csdn.net/article/details/138544047?spm=1001.2014.3001.5502 基于QT+C++实现的随机图形验证码,带有一些可人的交互与动画+源码 基于QT+C++实现的随机图形验证码,带有一些可人的交互与动画+源码 基于QT+C++实现的随机图形验证码,带有一些可人的交互与动画+源码 该项目实现了可交互的动画验证码控件,趣味性十足: 字符变换动画 噪音动画 可拖动交互

    操作系统实验-基于uCore OS内含源码以及说明书可以自己运行复现.zip

    操作系统实验-基于uCore OS内含源码以及说明书可以自己运行复现.zip

    2024-2030中国半导体零件清洗机市场现状研究分析与发展前景预测报告.docx

    2024-2030中国半导体零件清洗机市场现状研究分析与发展前景预测报告

    python教程-04-获取和设置标签内容(innerHTML).ev4.rar

    python教程-04-获取和设置标签内容(innerHTML).ev4.rar

    Qt数据可视化多种实现

    s 气泡图 s 面积图 s 雷达图 s 玫瑰图 s 3D图表

    windows10开始菜单磁贴背景是灰色的

    去白底图标

    001 定期同步mysql数据到es 删除数据库记录同时删除es记录 es全文搜索分词和高亮

    001 定期同步mysql数据到es 删除数据库记录同时删除es记录 es全文搜索分词和高亮

    汉字点阵滚动指示牌源程序.rar

    单片机学习代码资料

    node-v9.6.1-darwin-x64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    2022级高等数学A2期中试题B.doc

    2022级高等数学A2期中试题B.doc

    新手指南之玩转实验楼内含源码以及说明书可以自己运行复现.zip

    新手指南之玩转实验楼内含源码以及说明书可以自己运行复现.zip

    基于qt图书馆里系统框架 qt + c/c++ + csv

    基于qt图书馆里系统 框架 qt + c/c++ + csv 角色介绍 普通用户密码 qqq 123456 模块介绍 登录 主界面 子模块图书信息 (CSV数据集加载) 子模块用户信息 (CSV数据集加载) 子模块搜索模块 子模块借阅书籍 子模块归还图书 子模块查看详情 操作 子模块快速读取(自动后台加载指定的图书csv,用户csv) 子模块快速保存(自动后台保存指定的图书csv,用户cs) 子模块文件读取(两次导入,第一次选择要导入图书csv,第二次请选择需要导入的用户csv) 子模块文件导出(两次导出,第一次选择要导入图书csv,第二次请选择需要导入的用户csv) 其他 子模块个人信息 子模块退出系统 数据集设计 使用的数据集是csv

Global site tag (gtag.js) - Google Analytics