版权声明:
C语言技术网原创文章,转载请说明文章的来源、作者和原文的链接。
来源:C语言技术网(www.freecplus.net)
作者:码农有道如果文章有错别字,或者内容有错误,或其他的建议和意见,请您留言指正,非常感谢!!!
1. time_t别名
在C语言中,用time_t表示时间数据类型,是long长整型的别名,在头文件time.h中定于,表示日历时间。表示的是从1970年1月1日0分0秒到现在的秒数;
typedef long time_t;
2. 库函数time()
函数time()返回从1970年1月1日0分0秒到现在的秒数。
time()是C标准库中的函数,在time.h文件中声明
time_t time(time_t *t);
使用time()函数有两种方法:
time_t tnow;
// 第一种方法
tnow = time(0);
// 第二种方法
time(&tnow);
3. tm结构体
time_t的形式不符合我们的使用习惯,需要转换成可以方便表示时间的结构体tm,tm结构体在time.h中声明,如下:
struct tm
{
int tm_sec; // 秒:取值区间为[0,59]
int tm_min; // 分:取值区间为[0,59]
int tm_hour; // 时:取值区间为[0,23]
int tm_mday; // 日期:一个月中的日期,取值区间为[1,31]
int tm_mmon; // 月份:取值区间为[0,11],0表示1月
int tm_year; // 年份:其值等于十几年分减去1900
int tm_wday; // 星期:取值区间为[0,6],其中0代表星期天
int tm_yday; // 从每年的1月1日开始的天数,取值区间为[0,365],其中0代表1月1日
int tm_isdst; // 夏令时标识符,
};
4. 库函数localtime把time_t转换成tm
localtime函数用于把time_t表示的时间转换为struct tm结构体表示的时间。函数返回struct tm结构体的地址:
struct tm *localtime(const time_t*);
5. 库函数mktime()把tm转换成time_t
mktime()函数的功能与localtime()相反,把struct tm表示的时间转换为time_t表示的时间
time_t mktime(struct tm* );
使用示例:
#include <stdio.h>
#include <time.h>
int main()
{
time_t tnow = time(0); // 当前时间
tm *ptime = localtime(&tnow);
printf("当前时间为:%ld\r\n",tnow);
printf("当前时间为:%4d-%02d-%02d %02d:%02d:%02d\r\n",
ptime->tm_year+1900,
ptime->tm_mon+1,
ptime->tm_mday,
ptime->tm_hour,
ptime->tm_min,
ptime->tm_sec);
printf("今天是星期%d\r\n",ptime->tm_wday);
printf("今天是今年第%d天\r\n",ptime->tm_yday+1);
printf("1970年到现在有%ld秒\r\n",mktime(ptime));
getc(stdin);
return 0;
}
6. 程序睡眠
有时需要把程序挂起一段时间,可以使用sleep和usleep两个库函数,这两个库函数在头文件unistd.h中定义。
unsigned int sleep(unsigned int seconds);
int usleep(useconds_t usec);
sleep的参数单位是秒,usleep参数的单位是微秒。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/46130.html