FILETIME的使用
来源:互联网 发布:海尔阿里云软件wpk 编辑:程序博客网 时间:2024/06/05 17:34
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位了。
- 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
- deep belief network资料汇总
- 智能手机创新不见革命 只见气息
- 基于Hadoop的并行数据挖掘算法工具箱——Dodo
- 十张图带你入门Map/Reduce
- loadrunner--安装loadrunner11时需要安装.netframework1.1
- FILETIME的使用
- 四大行3月前17天放贷1400亿 投放节奏明显放缓
- Android Fragment综合理解
- DB2 SEQUENCE 使用
- AVL树(C++模块实现)
- 关于引路蜂技术博客主站
- Linux (CentOS/RHEL)利用NTFS-3G挂载NTFS格式的磁盘
- windows上面搭建hadoop环境。
- 页面置换算法(FIFO,LRU,OPT)c模拟