欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C语言时间函数介绍

程序员文章站 2024-01-28 19:55:41
...

C语言中有一个可以获取当地时间的函数,刚刚接触,写一点使用方法。

使用时间函数要预编译#include<time.h>头文件。
操作时间的函数具体有下面几个。

time_t time(time_t *t);:返回当前距1970年1月1号的秒 参数:一般填充NULL
struct tm *localtime(const time_t *timep);//将秒数转换为本地详细时间描述
 char *ctime(const time_t *timep);//将秒数转换为本地时间字符串
 struct tm *gmtime(const time_t *timep);//将秒数转换为国际标准时间详细描述
 char *asctime(const struct tm *tm);//将时间的详细描述转换为字符串

这个是C语言中存放时间结构体。

struct tm {
                  int tm_sec;         /* 秒:取值区间为[0,59]  */
                  int tm_min;         /*分:取值区间为[0,59]*/
                  int tm_hour;        /* 时:取值区间为[0,23] */
                  int tm_mday;        /* 一个月中的日期:取值区间为[1,31]*/
                  int tm_mon;         /* 月份(从一月开始, 0 代表一月) :取值区间为[0,11] */
                  int tm_year;        /* 年份:其值等于实际年份加上 1900 */
                  int tm_wday;        /*  星期:取值区间为[0,6],其中 0 代表星期天,1 代表星期一,以此类推 */
                  int tm_yday;        /*从每年的 1 月 1 日开始的天数:取值区间为[0,365],其中            0 代表 1 月 1 日,1 代表 1 月 2 日,以此类推*/
                  int tm_isdst;       /* 夏令时 */
              };

计算时间是把从1970年开始到现在的秒数,通过计算得出现在的年月日时分秒。

因此计算时间首先要获取秒数,然后处理输出。

time_t tm;//定义一个接收秒数的变量

time_t //是一个重定义过的typedef unsigned long time_t;

下面每个处理秒数的函数都给一个实例:

获取秒
获取秒数的方法1

#include<stdio.h>
#include<time.h>
int main()
{
 time_t tm;//定义一个接收秒数的变量
 tm = time(NULL);//time返回秒数
 printf("%ld\n", tm);//打印秒数
 return 0;
}

获取秒数的方法2

#include<stdio.h>
#include<time.h>
int main()
{	
 time_t tm;//定义一个接收秒数的变量
 time(&tm);//tm是秒数
 printf("%ld\n", tm);
 return 0;
}

有两种方法不难看出time函数是用来获取秒的
time_t time(time_t *t);:返回当前距1970年1月1号的秒

处理秒的函数

char *ctime(const time_t *timep); 将秒数转换为本地时间字符串
#include<stdio.h> #include<time.h> 
int main()
{
 char *day;
 time_t tm = 0;
 time(&tm);//获取秒
 day = ctime(&tm);//将秒转换为本地时间字符串,注意传参是地址传递
 //printf("%s", ctime(&tm));
 printf("%s", day);//打印本地时间。会自动换行
 return 0;
}
struct tm *localtime(const time_t *timep); 将秒数转换为本地详细时间描述
在这里插入代码片
struct tm *gmtime(const time_t *timep); 将秒数转换为国际标准时间详细描述
char *asctime(const struct tm *tm); 将时间的详细描述转换为字符串

time_t sectime;//顶一个结构体变量
time(&sectime);//sectime就变成了从1970年开始的秒数。
sectime = time(NULL);
long ret;
ret = time(&sectime);//ret也是从1970年开始的秒数和上面的效果是一样的。注意ret要是long型的。
ctime(&ret);/ctime(&sectime);//将秒数转换为本地时间字符串
asctime(localtime(&ret))

相关标签: time函数