免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 7877 | 回复: 19
打印 上一主题 下一主题

[C] 求:C语言计算天数的函数 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-06-18 16:15 |只看该作者 |倒序浏览
哪位大侠有标准C计算天数的函数?
   即 "2003-01-01" - "2002-06-01" = ?
    日期为字符串,最好程序能兼容几种常见的日期格式,如:
   YYYYMMDD
     YYYY-MM-DD
     YYYY/MM/DD
     MM/DD/YYYY

    本人邮箱  lianghaibo_lhb@163.com
    谢谢!

论坛徽章:
0
2 [报告]
发表于 2003-06-18 16:58 |只看该作者

求:C语言计算天数的函数

#include <time.h>;

  char *asctime  (const struct tm *tm);
  char *asctime_r(const struct tm *tm, char *result);

  char *ctime  (const time_t *clock);
  char *ctime_r(const time_t *clock, char *result);

  struct tm *gmtime  (const time_t *clock);
  struct tm *gmtime_r(const time_t *clock, struct tm *result);

  struct tm *localtime  (const time_t *clock);
#include <time.h>;

  char *asctime  (const struct tm *tm);
  char *asctime_r(const struct tm *tm, char *result);

  char *ctime  (const time_t *clock);
  char *ctime_r(const time_t *clock, char *result);

  struct tm *gmtime  (const time_t *clock);
  struct tm *gmtime_r(const time_t *clock, struct tm *result);

  struct tm *localtime  (const time_t *clock);
   

    man一下,另外得出的时间必须转换

论坛徽章:
0
3 [报告]
发表于 2003-06-18 17:05 |只看该作者

求:C语言计算天数的函数

如果用Pro*C的话,这问题就很简单了。

论坛徽章:
0
4 [报告]
发表于 2003-06-18 17:09 |只看该作者

求:C语言计算天数的函数

informix也是

论坛徽章:
0
5 [报告]
发表于 2003-06-19 08:34 |只看该作者

求:C语言计算天数的函数

是啊,informix本身有库函数 rfmtdate( )、rdefmtdate( ),用起来很方便,但DB2就没有这样的函数,哪位大侠有用标准C自己写的这两个函数?

论坛徽章:
0
6 [报告]
发表于 2003-06-19 09:20 |只看该作者

求:C语言计算天数的函数

特大喜讯,我给你发了.


公司机密文件,仅限站内朋友,请勿外传,谢谢.

论坛徽章:
0
7 [报告]
发表于 2003-06-19 09:23 |只看该作者

求:C语言计算天数的函数

给我也发一份吧!win_bigboy老大!我的邮箱是:
wblyfnj◎sina.com

论坛徽章:
0
8 [报告]
发表于 2003-06-19 09:24 |只看该作者

求:C语言计算天数的函数

给一个大致的算法:
y1/m1/d1  --  y2/m2/d2

  1. #define LEAP(y) (((y) % 4 == 0 && (y) % 100 != 0) || (y) % 400 == 0)  /* 判断闰年 */
  2. int mm[13] = {31,28,31,30,31,30,31,31,30,31,30,31};
  3. ret = 0;
  4. for ( i = y1 + 1; i < y2; i++) {
  5.      if (LEAP(y))
  6.         ret += 366;
  7.      else
  8.         ret +=365;
  9. }
  10. for (i = m1+1; i <= 12; i++)
  11.      ret += mm[i];
  12. ret += mm[m1] - d1; /* @ */
  13. if (LEAP(y1) && m1 <= 2) ret++;
  14. for (i = 1; i < m2; i++)
  15.      ret += mm[i];
  16. ret += d2;
  17. if (LEAP(y2) && m2 >;= 2) ret++;
复制代码

没试过,可能会差一天,如果是的话,请修改/* @ */处

论坛徽章:
0
9 [报告]
发表于 2003-06-19 09:31 |只看该作者

求:C语言计算天数的函数

自己写函数吧。
我用C写的第一个程序就是这个,看了两周C的书,就开始写了。

论坛徽章:
0
10 [报告]
发表于 2003-06-19 10:37 |只看该作者

求:C语言计算天数的函数

原帖由 "wblyfnj" 发表:
给我也发一份吧!win_bigboy老大!我的邮箱是:
wblyfnj◎sina.com
   
好事做到底,不过不要敲我的饭碗啊.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP