C\C++ windows 绕过strptime
来源:互联网 发布:mac server如何使用 编辑:程序博客网 时间:2024/06/15 12:45
strptime()函数功能是实现字符串到时间的转换,在linux下可以正常运行,但在windows中却无法找到。Google后有篇微软的博文和StackOverflow都提到了windows中开源的strptime.c文件,但下载下来试后发现缺少很多头文件,如“namespace.h”等,所以这条路走不通。后来依据任务要求发现可以不用strptime:
1.任务目标:给定各个时间要素得到至今为止的秒数;
2.原始strptime构思:
struct tm tt0;//时间是2015年第234天16时0分0秒sprintf(d_time, "%d-%d %d:%d:%d", 2015, 234, 16, 0, 0);//先将时间要素转成字符串strptime(d_time, "%Y-%j %H:%M:%S", &tt0);//再将字符串d_time转成tm结构的对象time_t t0 = mktime(&tt0);//最后通过调用mktime函数得到time_t结构的秒数
3.绕过strptime实现:
struct tm tt0={0};//!!!特别注意,tt0最好赋初值,否则某些量容易出错//直接赋值tt0结构体,以下通过故意赋错的值实现天数的赋值//理论上如果赋天数应该是tt0.yday=234就行,但查阅文档后发现该值一般忽略,是由年月日确定后自动算出//因此网上采取这种方法,将月份赋值为0表示January,当天数tm_mday大于31的时候会自动调整。//[原文出处](http://stackoverflow.com/questions/9575131/why-is-mktime-changing-the-year-day-of-my-tm-struct)tt0.tm_sec = 0;tt0.tm_min = 0;tt0.tm_hour = 16;tt0.tm_mday = 234;tt0.tm_mon = 0;tt0.tm_year = 2015-1900;//!!!特别注意:必须减1900,否则mktime报错time_t t0 = mktime(&tt0);
1 0
- C\C++ windows 绕过strptime
- c语言之date_format日期格式化和strptime函数windows平台上实现
- strptime windows实现
- 利用%5c绕过验证
- 利用%5c绕过验证
- C/C++windows多线程
- C语言 利用异常绕过溢出保护攻击程序例子
- Android绕过JNi 调用C语言的方法
- windows 绕过开机密码
- windows 编程,c,c++,console
- (C/C++)Windows Data Type
- Windows文件操作【C/C++】
- 绕过Windows Rootkit检测系统
- 绕过Windows正版验证新方法
- 绕过Windows Rootkit检测系统
- 绕过windows的开机密码
- windows 绕过密码进入系统
- C#Windows应用程序部署
- UML类图几种关系的总结
- mysql 内存优化
- 恢复oracle被误更新数据的办法
- WebView
- 将datatable相关内容写入到excel中
- C\C++ windows 绕过strptime
- OpenGl 坐标转换
- ubuntu 14.04 python mysql 安装
- nginx 多服务配置
- 如何在linux系统之间共享文件
- 进一步说明引用、指针在函数传递中的运用。(记住这三种交换方式)
- POJ 2485 Highways
- Hibernate进阶
- Apache 管理 Tomcat集群配置