在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单片机的开发程序,供学习参考。
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.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.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中国板端光伏连接器市场现状研究分析与发展前景预测报告
用法链接:https://menghui666.blog.csdn.net/article/details/138544047?spm=1001.2014.3001.5502 基于QT+C++实现的随机图形验证码,带有一些可人的交互与动画+源码 基于QT+C++实现的随机图形验证码,带有一些可人的交互与动画+源码 基于QT+C++实现的随机图形验证码,带有一些可人的交互与动画+源码 该项目实现了可交互的动画验证码控件,趣味性十足: 字符变换动画 噪音动画 可拖动交互
操作系统实验-基于uCore OS内含源码以及说明书可以自己运行复现.zip
2024-2030中国半导体零件清洗机市场现状研究分析与发展前景预测报告
python教程-04-获取和设置标签内容(innerHTML).ev4.rar
s 气泡图 s 面积图 s 雷达图 s 玫瑰图 s 3D图表
去白底图标
001 定期同步mysql数据到es 删除数据库记录同时删除es记录 es全文搜索分词和高亮
单片机学习代码资料
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
新手指南之玩转实验楼内含源码以及说明书可以自己运行复现.zip
基于qt图书馆里系统 框架 qt + c/c++ + csv 角色介绍 普通用户密码 qqq 123456 模块介绍 登录 主界面 子模块图书信息 (CSV数据集加载) 子模块用户信息 (CSV数据集加载) 子模块搜索模块 子模块借阅书籍 子模块归还图书 子模块查看详情 操作 子模块快速读取(自动后台加载指定的图书csv,用户csv) 子模块快速保存(自动后台保存指定的图书csv,用户cs) 子模块文件读取(两次导入,第一次选择要导入图书csv,第二次请选择需要导入的用户csv) 子模块文件导出(两次导出,第一次选择要导入图书csv,第二次请选择需要导入的用户csv) 其他 子模块个人信息 子模块退出系统 数据集设计 使用的数据集是csv