初识库函数“time”

首先,要先对库函数有一个基本的概念,什么是“库函数”。

【来自:百度百科】库函数(Library function)是将函数封装入库,供用户使用的一种方式。方法是把一些常用到的函数编完放到一个文件里,供不同的人进行调用。调用的时候把它所在的文件名用#include<>加到里面就可以了。一般是放到lib文件里的。

这个概念很好理解,C语言的库函数给用户提供了极大的方便。接下来列举一下库函数的分类。

(1)I/O 函数。包括各种控制台I/O、缓冲型文件I/O和UNIX式非缓冲型文件I/O操作

需要的包含文件:stdio.h

(2)字符串、内存和字符函数。包括对字符串进行各种操作和对字符进行操作的函数。

需要的包含文件:string.h、mem.h、ctype.h或string.h

(3)数学函数。包括各种常用的三角函数、双曲线函数、指数和对数函数等。

需要的包含文件:math.h

(4)时间、日期和与系统有关的函数。对时间、日期的操作和设置计算机系统状态等。

需要的包含文件:time.h

(5)动态存储分配。包括"申请分配"和"释放"内存空间的函数。

需要的包含文件:alloc.h或stdlib.h

(6)目录管理。包括磁盘目录建立、查询、改变等操作的函数。

(7)过程控制。包括最基本的过程控制函数。

(8)字符屏幕和图形功能。包括各种绘制点、线、圆、方和填色等的函数。

(9)其它函数。

初学者在编程过程中基本只涉及到前五种函数,以上库函数的9大分类也只做简单了解即可。

 像stdio是一个I/O函数库,包含scanf、printf、getcher、putcher等函数一样,time函数库中也包含一些函数。例如clock、time、ctime、gmttime、localtime、mktime、asctime、difftime、strftime等。以下是其功能的简单介绍。

clock: 获取程序开始执行后占用的处理器时间,返回值clock_t。

time:获取当前系统时间(UTC时间)的time_t值。

ctime:将time_t值转换为表示本地时间的字符串。

gmttime:将time_t值转换为表示GMT时间的字符串。

localtime:将time_t转换为表示本地时间的strunct tm结构。

mktime:将表示本地时间的struct tm转换为time_t。

asctime:将struct tm转换为字符串形式。

difftime:得到两个日历时之间的差值。

strftime:自定义把结构体tm的日期与时间信息转换为制定的格式。
想再深入了解这些函数功能的使用以及看一些例子可以搜索CSDN博主「大米粒ing」的文章进一步学习。文章链接:https://blog.csdn.net/chenyiming_1990/article/details/8682552

下面我将引入一个计算阶乘的程序展示time函数库中计时函数clock()的功能。

例题:输入正整数n,计算s=1!+2!+3!+......+n!的末了六位(不含前导0)。n≤10^6,n!表示n的阶乘并输出运行时间。 

//摘自《算法竞赛 入门经典》(刘汝佳)
#include<stdio.h>
#include<time.h>
int main()
{
	const int MOD=1000000;
	int n,s=0;
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
		int factorial=1;
		for(int j=1;j<=i;j++)
		{
			factorial=factorial*j%MOD;
		}
		s=(s+factorial)%MOD;
	}
	printf("%d\n",s);
	printf("Time used =%.2f\n",(double)clock()/CLOCKS_PER_SEC);
	return 0;
 } 

 本例答题很好理解。现在来解释一下涉及到time函数库函数的内容。

引用库函数time时,在程序开头写上引用库函数的声明#include<time.h>即可。

程序最后有printf("Time used =%.2f\n",(double)clock()/CLOCKS_PER_SEC);的语句。

clock()返回值clock_t就是long类型。本程序中使用的强制类型转换的操作。在clock前面加上(double)就将clock的返回转化为double类型,作用就是精确度变高了。

百度中有这样的解释:clock()返回的不是当前的UTC时间,而且返回当前程序占用的CPU时间,用clock()返回的值除于CLOCKS_PER_SEC常量可以得到当前程序的运行时间,单位是秒。CLOCKS_PER_SEC和操作系统相关,尽量不要使用clock()的返回值。

将这个程序放在编程环境中运行,出现两行数字,第一行是s值,第二行是程序运行时间。

程序运行时间的问题需要进一步解释:

输入“9”,按Enter键后能立马得到结果362880,但是输出的Time used不是0。原因在于键盘的输入时间也被计算在内,这是在程序启动之后在进行的。为避免输入数据的时间影响,下面我们介绍一种成为“管道”的小技巧:在Windows命令行下执行echo 20|abc,操作系统会自动把20输入,其中abc是程序名。Linux系统有其他输入方法(作者现在也不太明白)。这里留下一个可供后续继续学习的内容:命令行操作。(也是《算法竞赛 入门经典》一书中介绍的)欢迎读着来和作者共同学习,以及在后续的文章中作者也会更新有关命令行操作的知识内容。

读着可以尝试自己运行此程序并观察输出结果,也可以结合其他程序进一步加深对time库函数的理解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python的time库提供了一些常用的时间函数,包括time.time()、time.strftime()和time.strptime()。 time.time()函数返回当前时间的时间戳,以浮点数类型表示。例如,time.time()的返回值可以是1548826080.93。 time.strftime()函数返回一个指定格式的时间字符串。该函数接受两个参数,第一个参数是时间格式,用来指定输出时间字符串的形式,第二个参数是一个时间结构体,用来指定时间。例如,time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())会返回形如"2019-01-30 14:00:33"的时间字符串。 time.strptime()函数将一个时间字符串解析为一个时间结构化的元组。该函数接受两个参数,第一个参数是要解析的时间字符串,第二个参数是时间格式,用来指定输入时间字符串的形式。例如,time.strptime("2019-01-30","%Y-%m-%d")会返回一个元组,其中包含了年、月、日等时间信息。 总结来说,pythontime库函数包括time.time()、time.strftime()和time.strptime(),分别用于获取当前时间戳、格式化时间字符串和解析时间字符串。使用这些函数可以方便地处理时间相关的操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Python之time库的一些重要函数介绍](https://blog.csdn.net/weixin_42883530/article/details/86701845)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值