先行知识点:
一.time函数的相关使用
- 包含头文件 time.h
- 了解结构体 struct tm(关于时间的结构体)
- time_t time(time_t time)
第一个参数若为NULL,就是直接获取当前的系统时钟
返回为日历时间 - struct tm * localtime(const time_t *clock)
第一个参数填入time获取的时间
返回值为一个struct tm 结构体 - char *asctime(const struct tm *tblock);
第一个参数填入struct tm 的结构体指针
返回值为字符串
此时就可以用作显示使用 - char *ctime(const time_t *time)
第一个参数填入time_t 类型的地址,可以由time()函数获取
返回值为字符串
二.实现自定时间格式输出
(1)将struc tm结构体传入自己定义的函数里面
(2)再使用sprintf()格式化输出存入字符串指针中
sprintf(char *,“ %d ”,int)
- 第一个参数填入指针,即需要存储的字符串首地址
- 第二个参数就是自己定义的字符串
- 第三个参数就是自己要转换的数据
#include <stdio.h>
#include <time.h>
char * mytime(const struct tm *t);
int main()
{
struct tm *timer;//存储时间 的结构体
time_t lt;
//获取当前系统时钟
lt=time(NULL);
//将time_t转换为字符串
timer=localtime(<);//返回一个结构体
//将结构体的时间装换为字符串输出
printf("localtime is %s\n",asctime(timer));//返回一个字符串
//使用ctime,将数据转换为字符串
printf("localtime is %s\n",ctime(<));
//自定义时间格式
printf("%s\n",mytime(timer));
}
char * mytime(const struct tm *t)
{
char * timer;
sprintf(timer,"my time is %d:%d",t->tm_hour,t->tm_min);//将整型的时间装换为字符串,存在timer中
return timer;
}
编译及测试:
//编译
gcc time.c -o time
//执行
./time
显示:
localtime is Wed Sep 19 11:14:54 2018
localtime is Wed Sep 19 11:14:54 2018
my time is 11:14