版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 师德师风学习计划3
- VS5300激光对中仪说明书
- 颈椎后路单开门椎管扩大成形术的护理课件
- 大学美育 课件 第一篇第三章第一节 风云雨雪
- 圆与圆的位置关系教学设计 高二上学期数学人教A版(2019)选择性必修第一册
- 《 弹性板壳与流体耦合作用问题研究》
- 蛋白质 高二上学期化学人教版(2019)选择性必修3
- 100天攻克高考词汇背诵66课件 高考英语一轮复习
- Unit2+Exploring+English+Using+language+Listening+and+speaking 高中英语外研版(2019)必修第一册
- 2024教师节座谈会发言稿(30篇)
- 珍珠鸟教案一等奖珍珠鸟教案
- 浦东科普诗词大赛题库
- 美术作品与客观世界 课件-2023-2024学年高中美术湘美版(2019)美术鉴赏
- (4)-1.2人生观的主要内容
- 外周神经阻滞与超声介入解剖
- Unit2+Reading+Strangers+under+the+same+roof+课件+【知识精讲+能力提升】高中英语牛津译林版必修第一册
- 中学体育课题申报书:《提高中考体育中长跑成绩分析与策略》课题申报材料
- 2.2-蛋白质的相关计算
- 服务器招标参数
- 2022年泰山杯网络安全知识大赛考试参考题库600题(含各题型)
- 体育开学第一课ppt课件(图文)
评论
0/150
提交评论