各位看官们,大家好,上一回中咱们说的是螺旋矩阵的例子,这一回咱们说的例子是:获取当前日期和时
间。闲话休提,言归正转。让我们一起talk C栗子吧!
看官们,在正式开始之前,我先问一个问题:如果我们想查看当前的日期和时间怎么办?“看表呀!“ 。从
这位看官的回答中,就能看出来大家还没有进入状态。我的意思是:我们在Mint系统上如果想查看当前的
日期和时间,应该怎么办? ”使用date命令”。完全正确!这位看官说的很好,看来你已经进入状态了。经
过你这么一说,我希望各位看官都跟着进入状态。我们现在就开始今天的内容。
Linux中提供了date命令来显示或者修改系统的日期和时间,不过这个命令是在终端中运行的,如果我们
想在C语言编写的程序中显示系统的日期和时间怎么办?这就需要使用time.h库提供的相关函数。我们
需要使用的函数有:time(),localtime()和ctime().接下来我分别介绍一下这些库函数的功能及其用法,
然后我们就可以使用它们来获取系统日期和时间了:
time的函数原型:time_t time(time_t *t)。
当t为空时,它返回从1970-01-01 00:00:00到当前时间的秒数,当t不为空时,它会把返回的秒数存放
到参数t中。另外,这里的time_t在Linux上是用double类型实现的,所以可以把它当作double类型。
localtime的函数原型:struct tm *localtime(const time_t *timep)。
它把存放在time中的时间转换成与当地时区匹配的时间,并且存放在tm类型的返回值中。这样我就
能到返回值中获取我们想要的时间了。关于tm类型,我专门说明一下:
tm类型是一个结构体类型,其原型如下:
struct tm {
int tm_sec; /* seconds */
int tm_min; /* minutes */
int tm_hour; /* hours */
int tm_mday; /* day of the month */
int tm_mon; /* month */
int tm_year; /* year */
int tm_wday; /* day of the week */
int tm_yday; /* day in the year */
int tm_isdst; /* daylight saving time */
};
大家从注释中可以看到各个成员的意思,我就不多说了。我特别说一下tm_year和tm_mon。
tm_year是从1900到现在年数差。比如现在是2015年,它会返回115这个差值,因此我们使用的时候
需要加上它的基数:1900。
tm_mon是一个从0到11的数值,其中的原理我想大家能理解吧,因为这和C语言中数组的下标是一样
的。鉴于这个原理,我们在使用的时候需要加1.不然你的时钟永远比其它人的时钟晚一个月。
这些细节的内容说完了,接下来我说一下获取日期和时间的具体步骤:
看官们,正文中就不写代码了,详细的代码放到了我的资源中,大家可以点击这里下载使用。看官们在查
看运行结果时发现我们得到的日期和时间和date命令得到的日期和时间在格式上不一样。如果大家非常喜
欢date命令显示时间和日期的哪种格式,可以使用一个叫ctime的函数,它显示的结果会让你满意的。
另外,我在代码中也使用了ctime函数,就当作是给大家一个示例吧。
各位看官,关于获取当前日期和时间的例子咱们就说到这里。欲知后面还有什么例子,且听下回分解。
版权声明:本文为博主原创文章,未经博主允许不得转载。
一起talk C栗子吧(第三十七回:C语言实例--获取当前日期和时间)
原文地址:http://blog.csdn.net/talk_8/article/details/47732683