- 论坛徽章:
- 0
|
取与今天有一个偏移量的日期的格式化输出,我习惯于直接用这个工具来生成包含日期的文件名称\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 |
|