【C】【时间操作】C语言中关于时间的操作

版权声明:

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参数的单位是微秒。

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值