程序中的时间控制GetLocalTime
来源:互联网 发布:怎么检查dns linux 编辑:程序博客网 时间:2024/05/16 15:09
Target : 程序中实现每隔5秒运行一次函数,持续运行很久
在网上看了一下这方面的函数,本来想用GetTickCount()函数,但是它获取的时间最大值只有49.71天。后面会重置为0。
所以参考了GetLocalTime函数,只是它对时间的加减没有GetTickCount函数方便。综合而言还是选用GetLocalTime。
首先要执行时间差的操作,判断是否相差为5秒
bool timecom(SYSTEMTIME &firstTime, SYSTEMTIME &secondTime)// 判断时间差是否为5秒{if (1)//if (secondTime.wMilliseconds == firstTime.wMilliseconds)// NOTE : 不加这个判断条件下面得出的时间毫秒位为000{if (secondTime.wSecond > firstTime.wSecond){if (secondTime.wSecond - firstTime.wSecond == 5){return true;}elsereturn false;}else if (secondTime.wSecond < firstTime.wSecond){if (secondTime.wSecond + 60 - firstTime.wSecond == 5){return true;}elsereturn false;}elsereturn false;}elsereturn false;}
主函数
int main(void){SYSTEMTIME sys1,sys2;// 时间GetLocalTime(&sys1);// 获取初始时间while (1){//Sleep(100);GetLocalTime(&sys2);// 获取当前时间//printf("%02d:%02d.%03d\n", sys1.wMinute, sys1.wSecond, sys1.wMilliseconds);//printf("%02d:%02d.%03d\n", sys2.wMinute, sys2.wSecond, sys2.wMilliseconds);if (timecom(sys1, sys2))// 判断时间差是否为5秒{sys1 = sys2;//////////////////////////////////////////////////////////////////////////// TODO :printf("%4d/%02d/%02d %02d:%02d:%02d.%03d 星期%1d\n", sys1.wYear, sys1.wMonth, sys1.wDay, sys1.wHour, sys1.wMinute, sys1.wSecond, sys1.wMilliseconds, sys1.wDayOfWeek);}}//printf("%d\n", sys1 - sys);//printf("%4d/%02d/%02d %02d:%02d:%02d.%03d 星期%1d\n", sys.wYear, sys.wMonth, sys.wDay, sys.wHour, sys.wMinute, sys.wSecond, sys.wMilliseconds, sys.wDayOfWeek);_getch();return 0;}
有些问题,不添加毫秒的判断出来的时间是整数,即10:20:33.000,而添加毫秒判断之后获取的就是当前时间,即10:20:30.856这种形式。为什么呢。
加了毫秒判断后再添加程序挂起(Sleep)后要执行的部分很难进去,即判断经常不成功。可能是由于Sleep函数时间不精确,影响到了上面的时间判断。
这篇文章中归纳的时间函数挺全: http://wxxweb.blog.163.com/blog/static/13512690020102102420792/
0 0
- 程序中的时间控制GetLocalTime
- 用GetLocalTime()获取当前时间
- GetLocalTime
- GetLocalTime
- Getlocaltime
- time(NULL)与GetLocalTime获取当前时间
- time(NULL)与GetLocalTime获取当前时间
- 程序运行时间的控制
- 程序中的风险控制
- VC中的时间控制函数
- Unity中的时间控制 - 时间倒退
- 使用GetLocalTime()和GetSystemTime()所获得的时间不同
- windows 使用GetLocalTime()和GetSystemTime()所获得的时间不同
- windows 使用GetLocalTime()和GetSystemTime()所获得的时间不同
- Android程序中的输入法控制
- 程序中的黑白名单控制
- PHP控制网页过期时间的程序
- PHP控制网页过期时间的程序
- neo4j 三元组数据存储问题的解决方案
- not in 和 not exits 的区别
- NewSQL登场,NuoDB告诉你未来数据库什么样
- android 性能优化总结
- Windows phone UI虚拟化和数据虚拟化(二)
- 程序中的时间控制GetLocalTime
- OpenvSwitch用例2
- 好题 BUPT OJ130 非平方等式
- coco2d-x 中box2d选中刚体
- .NET系列文章——近一年文章分类整理,方便各位博友们查询学习
- Linux下,Java进程占用CPU超100%
- LinuxCast学习笔记四Filesys_Arch
- nginx上传文件大小
- 利用dmesg和addr2line来重现bug