c语言中的时间处理

 

为了完善昨天没有完成的工作,今天过来把每一次登录时间也插入到数据库中,方便查询
从网上找了一些文档,加上自己的一些体会,写一些东西。呵呵
这也不是什么新的东西,也不是什么难的东西:)

1。头文件:
#include <time.h>
其中的一个结构体:
struct tm
{
  int tm_sec;//seconds 0-59
  int tm_min;//minutes 0-59
  int tm_hour;//hours 0-23
  int tm_mday;//day of the month 1-31
  int tm_mon;//months since jan 0-11
  int tm_year;//years from 1900
  int tm_wday;//days since Sunday, 0-6
  int tm_yday;//days since Jan 1, 0-365
  int tm_isdst;//Daylight Saving time indicator
};
 这里有比较清除的注释,我只做简单的一点解释,不过觉得有点画蛇添足:(
tm_sec,表示某一时刻的秒数,区间是0到59;
tm_min,表示某一时刻的分钟数,区间也是0到59;
tm_hour,表示某一时刻的小时数,区间0到23;
tm_day,表示当前时刻所在天数,区间0到31;
tm_mon,表示当前时刻所在月,区间0到11;
tm_year,表示当前时刻所在年,从1900年开始算起,例如2006年,这里的值就是2006-1900 = 106;
tm_wday,星期几,0表示星期日,区间0到6;
tm_yday,表示这天从1月1日开始,是第几天。区间0到365;
tm_isdst,表示是否实行夏令时,为正时,表示夏令时方式;为负时表示非夏令时方式;
2.函数:

double difftime(time_t time1,time_t time0);
用来计算两个时间点之间的时间差,是以秒为单位的。
time_t time(time_t *timer);
用来返回从1900年到当前时刻的时间,单位为秒。
struct tm * localtime(const time_t * timer)
用来将时间转换为当前地点时间。
还有很多的函数,这里不做一一介绍,有兴趣的朋友可以查看linux手册。

3.使用:
  我是要把当前时间通过c语言insert到数据库中,因此,只用到上面介绍的两个函数。下面是我的代码:
  oid main()
{
time_t now;    //实例化time_t结构
struct tm  *timenow;    //实例化tm结构指针
time(&now);
//time函数读取现在的时间(国际标准时间非北京时间),然后传值给now

timenow = localtime(&now);
//localtime函数把从time取得的时间now换算成你电脑中的时间(就是你设置的地区)
 sprintf(sql,"insert into usertable(logintime) values(%04d-%02d-%02d %02d-%02d-%02d')",
   timenow->tm_year+1900,
   timenow->tm_mon+1,
   timenow->tm_mday,
   timenow->tm_hour,
   timenow->tm_min,
   timenow->tm_sec)
这里大家注意到,为了满足数据库中时间日期格式,我们必须把localtime返回的tm结构中的数据,一个一个的分开插入。如果按照正常的时间

输出格式。如:
printf("%s",asctime(timenow));
这样输出的时间是这样的:Wed Oct 11 09:34:40 2006,是星期几,日期,时间,年这样的格式,无法输入到datetime格式的数据项中。


4.总结:
这篇文档是看了些网上文章和linux man的一些个人认识。如果哪里有不太专业,或者不正确的地方,请大家给予指正!谢谢!
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值