版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Win32 的时间类型在 Win32 时间类型有这样几种类型 FILETIME/SYSTEMTIME/WINDOWSTIME 先提个问题, 如 何计算当前时间 100 天以后的时间,在 win32 中。 1.SYSTEMTIME SYSTEMTIME 的定义是这样typedef struct _SYSTEMTIMEWORD wYear;WORD wMonth;WORD wDayOfWeek;WORD wDay;WORD wHour;WORD wMinute;WORD wSecond;WORD wMilliseconds; SYSTEMTIME;很大,总共 16 个字节。 你可以调用 GetSy
2、stemTime 来取得 当前的时间SYSTEMTIME st;:GetSystemTime(&st); 但是如果你调用 st.wDay += 100; 是 达不到效果的,将会得到一个无效的时间格式 2. FILETIME FILETIME 的定义是这样的typedef struct _FILETIMEDWORD dwLowDateTime;DWORD dwHighDateTime; FILETIME;FILETIME 这个名字很奇怪,其实他跟 FILE 并 没有直接关系, 只是很多 File 的 API 中, 都以这个为时间的 类型,比如你可以调用 GetFileTime 来取得 File
3、的创建 /修改 /访问时间。FILETIME 是一个 _int64 。可以这样转化成 _int64 _int64 d = *(_int64 *)&st;/or_int64 d2; memcpy(&d2,&st,sizeof(d2);转化为 _int64 是一个以 100 纳秒为单位的值 补习一下时间单位( spx)1ms ( 毫秒 )1 毫秒=0.001 秒=10-3 秒(millisecond)1卩s (微秒1 微秒 =0.000001=10-6 秒 (microsecond)1ns ( 纳秒 )1 纳秒 =0.000000001 秒 =10-9 秒( nanosecond)1ps ( 皮秒
4、 )1 皮秒 =0.000000000001 秒 =10-12 秒1fs ( 飞秒 )1 飞秒=0.00000000000001秒=10-15 秒SYSTEMTIME 可以通过 SystemTimeToFileTime 来转化为 FILETIME3.Window Time:GetTickCount() 可以返回当前的以微秒为单位的时间, 用在 精度要求不高的场合,返回的只是一个 DWORD ,四字节。 高一点的使用 timeGetTime 如何计算当前时间 100 天以后的 时间,在 win32 中。应该这样写 const _int64nano100SecInDay=(_int64)10000
5、000*60*60*24;SYSTE MTIME st;:GetSystemTime(&st);FILETIME f;:SystemTimeToFileTime(&st,&f);ULARGE_INTEGER now; memcpy(&now,&f,sizeof(now); now += 100*nano100SecInDay; memcpy(&f,&now,sizeof(f);FileTimeToSystemTime(&f,&st); 最后: 附上我写的一个小工 具,删除指定文件夹下面的过期文件的一个工具,并可以备 份,支持子文件夹嵌套。 #include windows.h #include
6、 cstdio#include string using namespace std;const _int64 nano100SecInDay=(_int64)10000000*60*60*24; ULARGE_INTEGER now;int days = 14;bool backup = false;string dst_dir;string backup_dir;void make_sure_dir_exist(string & file) int tag = 2; while(true) tag = file.find_first_of(,tag+1);if(tag!=-1)string
7、 tmp = file.substr(0,tag); :CreateDirectory(tmp.c_str(),NULL);elsebreak;void xdel(const char *dir)char tempFileFind1024;sprintf(tempFileFind,%s*.*,dir);WIN32_FIND_DATA ffd; HANDLE hFind;hFind = :FindFirstFile(tempFileFind,&ffd);if(hFind = INVALID_HANDLE_VALUE)printf(cant find %sn,dir); return;while(
8、true)/printf(find %sn,ffd.cFileName);FILETIME &ft = ffd.ftLastWriteTime; ULARGE_INTEGER ui;memcpy(&ui,&ft,sizeof(ui);_int64 t = now.QuadPart-ui.QuadPart;if(ffd.dwFileAttributes&FILE_A TTRIBUTE_DIRECTORY)if(strcmp(ffd.cFileName, .) & strcmp(ffd.cFileName,.)char temp1024; sprintf(temp,%s%s,dir,ffd.cFi
9、leName); xdel(temp);if(t=nano100SecInDay*days)if(:RemoveDirectory(temp)printf(del dir %s okn,temp);else printf(del dir %s failedn,temp);elsechar temp1024;sprintf(temp,%s%s,dir,ffd.cFileName);if(t=nano100Sec InDay*days)if(backup)string backup_file = temp;backup_file.replace(0,dst_dir.length(),backup_
10、dir.c_str(); make_sure_dir_exist(backup_file);if(:MoveFile(temp,backup_file.c_str()printf(backup file %s okn,temp);else printf(backup file %s failedn,temp); elseSetFileAttributes(temp,FILE_ATTRIBUTE_NORMAL);if(:DeleteFile(temp)printf(del file %s okn,temp);elseprintf(del file %s failedn,temp);if (!Fi
11、ndNextFile(hFind, &ffd)break;FindClose(hFind);int main(int argc,char * argv)if(argc2)printf(usage: xdel directory /d= /m=n);printf(optional /d: config the expired days,default is 14 daysn);printf(optional /m: config the backup directoryn); printf(for example: xdel d:test /d=10 /m=d:backup); return 1;for(int i=1;iargc;+i)string tmp = argvi;if(tmp.find(/d=)!=-1)int d = atoi(tmp.substr(3).c_str();if(d!=0)days =d;else if(tmp.find(/m=)!=-1) backup = true;back
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2030年中国农村物流行业发展创新模式及投资规划研究报告
- 2024-2030年中国内河水运行业十三五规划及投融资分析报告
- 2024-2030年中国六氢苯甲酸行业运行态势及发展风险研究报告
- 2024-2030年中国公园管理行业前景趋势规划研究报告
- 2024年工程合同:建筑打桩服务协议
- 2024年墙纸生产销售合同范本
- 2023年资阳市中医医院招聘考试真题
- 2024年国际公共卫生事件应急物资采购合同
- 2024年互联网金融服务框架协议
- 2023年福建福州冶城发展集团有限公司招聘考试真题
- 安全员继续教育考试题库1000道附参考答案(完整版)
- 2024年中储粮集团招聘笔试参考题库附带答案详解
- 品牌卡通IP设计方法
- (2024年)保安培训图文课件
- 2023年《中职音乐》期末考试试卷及参考答案(卷)
- 审计部工作总结及计划
- 山东开放大学2024《控制系统CAD》形考作业1-3答案
- 大数据专业职业规划
- 人教版九年级上学期期中考试数学试卷及答案解析(共5套)
- 逆境中的积极心态与成就
- 山东省2023年高考物理模拟(一模、二模)试题知识点训练:电磁学解答题
评论
0/150
提交评论