FILETIME的使用
来源:互联网 发布:专业手机维修软件 编辑:程序博客网 时间:2024/06/03 04:22
typedef struct _FILETIME {
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} FILETIME, *PFILETIME, *LPFILETIME;
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} FILETIME, *PFILETIME, *LPFILETIME;
typedef struct _SYSTEMTIME {
WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
} SYSTEMTIME, *LPSYSTEMTIME;
WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
} SYSTEMTIME, *LPSYSTEMTIME;
FILETIME和SYSTEMTIME都只是记录时间的结构。
GetLocalTime能够得到本地电脑设置时区的时间,得到的类型是SYSTEMTIME的类型。
常用转换函数:
LONG WINAPI CompareFileTime(const FILETIME *lpft1, const FILETIME *lpft2);
BOOL WINAPI FileTimeToSystemTime(const FILETIME *lpft, LPSYSTEMTIME lpst);
BOOL WINAPI SystemTimeToFileTime(const SYSTEMTIME *lpst, LPFILETIME lpft);
BOOL WINAPI FileTimeToLocalFileTime(const FILETIME *lpft, LPFILETIME lpftLocal);
BOOL WINAPI LocalFileTimeToFileTime(const FILETIME *lpftLocal, LPFILETIME lpft);
BOOL WINAPI FileTimeToSystemTime(const FILETIME *lpft, LPSYSTEMTIME lpst);
BOOL WINAPI SystemTimeToFileTime(const SYSTEMTIME *lpst, LPFILETIME lpft);
BOOL WINAPI FileTimeToLocalFileTime(const FILETIME *lpft, LPFILETIME lpftLocal);
BOOL WINAPI LocalFileTimeToFileTime(const FILETIME *lpftLocal, LPFILETIME lpft);
那么,如果使用FILETIME来记录时间,需要加上n秒,如何进行累加计算呢?
#define PER_SECOND 1*10*1000*1000 //1秒
ULONGLONG ullSeconds = n* PER_SECOND;
FILETIME tTime;
ULARGE_INTEGER temp;
temp.QuadPart = ullSeconds;
tTime.dwHighDateTime = temp.HighPart;
tTime.dwLowDateTime = temp.LowPart;
temp.QuadPart = ullSeconds;
tTime.dwHighDateTime = temp.HighPart;
tTime.dwLowDateTime = temp.LowPart;
依次类推,1小时就是36000000000;1天就是864000000000
说明:ULARGE_INTEGER 的结构定义如下
typedef union _ULARGE_INTEGER {
struct {
DWORD LowPart;
DWORD HighPart;
};
struct {
DWORD LowPart;
DWORD HighPart;
} u;
#endif //MIDL_PASS
ULONGLONG QuadPart;
} ULARGE_INTEGER;
struct {
DWORD LowPart;
DWORD HighPart;
};
struct {
DWORD LowPart;
DWORD HighPart;
} u;
#endif //MIDL_PASS
ULONGLONG QuadPart;
} ULARGE_INTEGER;
typedef ULARGE_INTEGER *PULARGE_INTEGER;
可以看到,它是一个64位的联合体,它的空间大小就是64位,当使用QuadPart时等于是以64位的整体来使用的;
而若使用 LowPart和 HighPart时,等于是以高低32位来使用的。
因此,temp.QuadPart = ullSeconds;是给QuadPart赋值,实际上也就是给temp的内存空间赋值了,当然也可以通过LowPart和HighPart分别取出temp的低32位和高32位了。
0 0
- FILETIME的使用
- FILETIME的使用
- FILETIME的使用
- FILETIME的使用
- 关于FILETIME的比较
- FILETIME 、SYSTEMTIME的转换
- FILETIME
- FILETIME
- 取得两个 FILETIME 的时间差
- FILETIME使用,获取文件的创建时间,修改时间和访问时间
- FileTime 和 CTime之间的转换问题
- FileTime 和 CTime之间的转换问题
- FILETIME类型的变量转换为CString
- FILETIME类型到LARGE_INTEGER类型的转换
- CTime FILETIME 与CString之间的转换
- FindFirstFile 获得的文件创建时间FILETIME 是UAC时间
- COleDateTime 的构造函数自动将FILETIME转换为Localtime
- 如何转换为 Win32 FILETIME 或 SYSTEMTIME 的 UNIX time_t
- Qt中QTableWidget用法总结
- java设计模式学习笔记2 策略模式
- ios学习之App States
- 开源项目推荐(12.25):菜单(Menu)
- C++中相对路径与绝对路径以及斜杠与反斜杠的区别
- FILETIME的使用
- js报对象不支持此属性
- cocos2d-x3.0 + vs2012环境配置【codingnow.cn】
- cocos2dx开发要注意的问题
- maven常用命令
- ios 防止按钮快速点击造成多次响应的避免方法。
- semi join 与 anti join
- dfhgserhger
- 看看机器学习都有哪些比较成熟的应用