一、ftime是什么?
ftime是一个C标准库函数,用于获取当前时间和日期。
#include <time.h>
time_t time(time_t *t);
struct tm *localtime(const time_t *t);
其中,time返回的是从1970年1月1日0时0分0秒至今的秒数,而localtime则将time返回的秒数转换为一个结构体,结构体中包含了年、月、日、时、分、秒等时间信息。
二、获取当前时间
要获取当前时间,我们只需要调用time函数即可:
#include <stdio.h>
#include <time.h>
int main(){
time_t current_time;
time(¤t_time);
printf("Current time is: %s\n", ctime(¤t_time));
return 0;
}
运行结果:
Current time is: Tue Apr 20 14:28:56 2021
三、格式化输出时间
ctime函数返回的时间格式并不是我们常见的日期时间格式,我们需要使用strftime函数将时间格式化为我们需要的格式。
#include <stdio.h>
#include <time.h>
int main(){
time_t current_time;
time(¤t_time);
char time_str[100];
strftime(time_str, sizeof(time_str), "%Y-%m-%d %H:%M:%S", localtime(¤t_time));
printf("Current time is: %s\n", time_str);
return 0;
}
运行结果:
Current time is: 2021-04-20 14:28:56
四、计算时间差
有时我们需要计算两个时间之间的差,可以通过将两个时间转为秒数,再相减得到时间差。
#include <stdio.h>
#include <time.h>
int main(){
time_t start_time, end_time;
double diff;
time(&start_time);
sleep(5);
time(&end_time);
diff = difftime(end_time, start_time);
printf("Time difference is: %.2lf seconds\n", diff);
return 0;
}
运行结果:
Time difference is: 5.00 seconds
五、设置定时器
我们可以使用定时器来定时执行某段代码,可以使用alarm函数。
#include <stdio.h>
#include <unistd.h>
#include <signal.h>
void alarm_handler(int signum){
printf("Alarm triggered!\n");
//重新设置定时器
alarm(3);
}
int main(){
//安装信号处理器
signal(SIGALRM, alarm_handler);
//设置定时器
alarm(3);
//等待定时器信号触发
while(1){
sleep(1);
}
return 0;
}
运行结果:
Alarm triggered!
Alarm triggered!
Alarm triggered!
...
六、总结
本文通过对ftime函数的介绍,详细阐述了如何获取当前时间和日期、格式化输出时间、计算时间差和设置定时器等。