与时间相关的函数

做项目过程中,需要与系统时间进行比较来判断是否超时,所以用上了time函数。下面是我当时所写的雏形:


#include <time.h>
#include <stdio.h>

int main(void)  
{  
    time_t timep;  
    struct tm *p_tm;  

    while(1)
    {
      timep = time(NULL);  
      p_tm = localtime(&timep); /*获取本地时区时间*/  
      printf("%d:%d:%d\n", p_tm->tm_hour, p_tm->tm_min, p_tm->tm_sec);
      if(p_tm->tm_hour == 17 && p_tm->tm_min == 0)
      {
          printf("time over\n");
      }
      sleep(30);
    }
    
    return 0;  
} 

以下是我在使用时间函数时的收获:


使用的头文件是:time.h

与时间相关的函数:

time_t time(time_t *timer);

double difftime(time_t time1,time_t time2);

struct tm *gmtime(const time_t *timer);

struct tm *localtime(const time_t *timer);

char *asctime(const struct tm *timeptr);

char *ctime(const time_t *timer);

size_t strftime(char *s,size_t maxsize,const char *format,const struct tm *timeptr);

time_t mktime(struct tm *timeptr);

clock_t clock(void);


函数名称:     time 
函数原型:     time_t time(time_t *timer) 
函数功能:     得到机器的日历时间或者设置日历时间 
函数返回:     机器日历时间 
参数说明:     timer=NULL时得到机器日历时间,timer=时间数值时,用于设置日历时间,time_t是一个long类型

#include <time.h>   
#include <stdio.h>   
#include <dos.h>   
int main() {  
     time_t t;  
     t=time();  
     printf("The number of seconds since January 1,1970 is %ld",t);  
     return 0;   
}

函数名称:     difftime 
函数原型:     double difftime(time_t time2, time_t time1) 
函数功能:     得到两次机器时间差,单位为秒 
函数返回:     时间差,单位为秒 
参数说明:     time1-机器时间一,time2-机器时间二.该参数应使用time函数获得 


函数名称:     localtime 
函数原型:     struct tm *localtime(const time_t *timer) 
函数功能:     返回一个以tm结构表达的机器时间信息 
函数返回:     以tm结构表达的时间,结构tm定义如下: 

struct  tm{  
       int tm_sec;  
       int tm_min;  
       int tm_hour;  
       int tm_mday;  
       int tm_mon;  
       int tm_year;  
       int tm_wday;  
       int tm_yday;  
       int tm_isdst;  
     }; 


各个变量的含义:
int tm_sec 代表目前秒数,正常范围为0-59,但允许至61秒
int tm_min 代表目前分数,范围0-59
int tm_hour 从午夜算起的时数,范围为0-23
int tm_mday 目前月份的日数,范围01-31
int tm_mon 代表目前月份,从一月算起,范围从0-11
int tm_year 从1900 年算起至今的年数
int tm_wday 一星期的日数,从星期一算起,范围为0-6
int tm_yday 从今年1月1日算起至今的天数,范围为0-365
int tm_isdst 日光节约时间的旗标



未完待续。。。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值