免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3396 | 回复: 0

刚看到取昨天日期的讨论,发一个C语言的实现方式 [复制链接]

论坛徽章:
0
发表于 2005-11-05 20:06 |显示全部楼层
取与今天有一个偏移量的日期的格式化输出,我习惯于直接用这个工具来生成包含日期的文件名称\r\n\r\n这里给出源码,各位拿回去编译一下就ok,如果谁没有编译环境,我可以上传一个5.2上的编译版本。\r\n\r\n#include <stdlib.h>\r\n\r\nvoid usage(const char *str)\r\n{\r\n        printf(\"\\n\";        \r\n        printf(\"Usage : %s Format(char *) DateOffset(long)\\n\",str);        \r\n        printf(\"\\n\";        \r\n        exit(-1);\r\n}\r\n\r\nmain(int argc,char **argv)\r\n{\r\n        if(argc < 3)\r\n                usage(argv[0]);        \r\n\r\n        time_t cur_time;\r\n        struct tm *cur_tm;        \r\n        char buf[100];\r\n        long timeOffset = 0;\r\n        \r\n        memset(buf,\'\\0\',sizeof(buf));\r\n\r\n        if(time( &cur_time) == -1)\r\n        {\r\n                printf(\"can not get time\";\r\n                exit(-1);\r\n        }\r\n        \r\n        timeOffset = atol(argv[2]);\r\n        cur_time += timeOffset * 60 * 60 * 24;\r\n        \r\n        cur_tm = localtime( &cur_time );\r\n        strftime(buf,40,argv[1],cur_tm);\r\n        \r\n        printf(\"%s\",buf);\r\n}\r\n\r\n由于使用了strftime函数,所以可随意制定输出的格式\r\n\r\n% a 缩写的周日名T u e\r\n% A 全周日名T u e s d a y\r\n% b 缩写的月名J a n\r\n% B 月全名J a n u a r y\r\n% c 日期和时间Tue Jan 14 19:40:30 1992\r\n% d 月日:[01, 31] 1 4\r\n% H 小时(每天2 4小时):[00, 23] 1 9\r\n% I 小时(上、下午各1 2小时):[01, 12] 0 7\r\n% j 年日:[001, 366] 0 1 4\r\n% m 月:[01, 12] 0 1\r\n% M 分:[00, 59] 4 0\r\n% p A M / P M P M\r\n% S 秒:[00, 61] 3 0\r\n% U 星期日周数: [00, 53] 0 2\r\n% w 周日:[ 0 =星期日,6 ] 2\r\n% W 星期一周数: [00, 53] 0 2\r\n% x 日期0 1 / 1 4 / 9 2\r\n% X 时间1 9 : 4 0 : 3 0\r\n% y 不带公元的年:[00, 991] 9 2\r\n% Y 带公元的年1 9 9 2\r\n% Z 时区名M S T
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP