Chinaunix

标题: 寻求关于获得日期时间的函数或设计思想 [打印本页]

作者: 天祥星辰    时间: 2003-05-11 19:23
标题: 寻求关于获得日期时间的函数或设计思想
各位高手:
    本人想写一个函数,主要是想获得日期或时间。
    设想函数通过定义形式参数达到获得日期或时间的目的。

    例如:
  1. char *GetDateTime(char *format);
  2.       format  可以有规则定义,
  3.             如1:  YYYYMMDD    得到当前日期   20030511
  4.                      2:     YYYY/MM/DD                       2003/05/11
  5.                      3:     hh:mm:SS     得到当前时间  19:15:20
  6.                      4:     XQ                 得到星期几   日
  7.               5:     TS                  得到天数     131
  8.                      6: "系统日期 YYYY年MM月DD日星期XQ"   得到 系统日期 2003年05月11日星期日
  9.             当然,也可以用 MMDDYYYY   得到 05112003

  10. #include <stdio.h>;
  11. #include <time.h>;

  12. main()
  13. {
  14.         char    *str;
  15.         str=GetDateTime("你好 YYYY年MM月DD日  hh时mm分SS秒 星期 XQ   全年已经过了TS天");

  16.         printf("%s\n",str);
  17. }

  18. 结果显示:你好 2003年05月11日  19时15分20秒 星期日   全年已经过了131天

  19.       请大家讨论编程思想,怎样写才能比较简单!
复制代码

作者: 无双    时间: 2003-05-11 20:18
标题: 寻求关于获得日期时间的函数或设计思想
time
localtime
printf

看看这几个函数的man
我想你就会知道了
作者: 天祥星辰    时间: 2003-05-11 20:23
标题: 寻求关于获得日期时间的函数或设计思想
无双:
怎样获得系统日期和时间我知道怎么弄!
现在主要是想知道format串怎么灵活运用!
作者: g_t    时间: 2003-05-11 20:29
标题: 寻求关于获得日期时间的函数或设计思想
  1. /*-------------------------------------------------------
  2. 功能: 取得表示时间的字符串
  3. 参数: sort 字符串的格式:
  4.           1 - yyyy-MM-DD HH:MM:SS
  5.           2 - YYYYMMDD
  6.           3 - YYYY/MM/DD
  7.                   4 - YYYYMMDDHHMMSS
  8. 结果: char *result
  9. ---------------------------------------------------------*/
  10. void GetStrtime(int sort,char * result)
  11. {
  12.         time_t t_now;                        /*现在时间*/
  13.         char   ca_temp[50];                  /*临时字符串*/
  14.         struct tm   *ptm_temp;      /*临时tm变量  */

  15.         time(&t_now);        /*取得现在时间*/
  16.        
  17.         ptm_temp = localtime(&t_now);
  18.         switch(sort){
  19.                 case 1:
  20.                         strftime(ca_temp,50,"%Y-%m-%d %H:%M:%S",ptm_temp);
  21.                         break;
  22.                 case 2:
  23.                         strftime(ca_temp,50,"%Y%m%d",ptm_temp);
  24.                         break;
  25.                 case 3:
  26.                         strftime(ca_temp,50,"%Y/%m/%d",ptm_temp);
  27.                         break;
  28.                 case 4:
  29.                         strftime(ca_temp,50,"%Y%m%d%H%M%S",ptm_temp);
  30.         }
  31.         strcpy(result,ca_temp);

  32.         return;
  33. }
复制代码

作者: 天祥星辰    时间: 2003-05-11 20:42
标题: 寻求关于获得日期时间的函数或设计思想
谢谢! 启发很大!
作者: 无双    时间: 2003-05-11 20:45
标题: 寻求关于获得日期时间的函数或设计思想
楼上写得很简单
但是没有检查
result 是不是空值

如果能力上检查那么就是安全的代码
另外直接打印到result就会变成很简单的代码

不过g_t 能写出这样的代码已是进步很快了
作者: 天祥星辰    时间: 2003-05-11 20:55
标题: 寻求关于获得日期时间的函数或设计思想
经过测试完全正确!
作者: 蓝色键盘    时间: 2003-05-12 09:20
标题: 寻求关于获得日期时间的函数或设计思想
strftime(ca_temp,50,"%Y-%m-%d %H:%M:%S",ptm_temp);

函数strftime功能确实比较强大,能实现多种转化,有时间把这个函数的详细信息,贴进来。
作者: 天祥星辰    时间: 2003-05-12 21:23
标题: 寻求关于获得日期时间的函数或设计思想
期待ing.....
作者: odin_free    时间: 2003-05-12 22:19
标题: 寻求关于获得日期时间的函数或设计思想
收藏 学习




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2