赞
踩
在C语言中,<time.h>
头文件是标准库中用来处理日期和时间的重要部分。本文将详细介绍<time.h>
头文件中包含的9个函数,并提供每个函数的完整示例代码。
<time.h>
头文件定义了四个变量类型、两个宏和各种操作日期和时间的函数。在使用这些函数之前,我们首先来了解一下相关的库变量和宏。
<time.h>
头文件中定义的变量类型如下:
sizeof
关键字的结果。<time.h>
头文件中定义的宏如下:
接下来,我们将逐个介绍这9个函数,并给出每个函数的示例代码。
char *asctime(const struct tm *timeptr)
返回一个指向字符串的指针,代表结构 timeptr
的日期和时间。
#include <stdio.h>
#include <time.h>
int main() {
time_t rawtime;
struct tm *timeinfo;
time(&rawtime);
timeinfo = localtime(&rawtime);
printf("Current date and time: %s", asctime(timeinfo));
return 0;
}
clock_t clock(void)
返回程序执行起,处理器时钟所使用的时间。
#include <stdio.h> #include <time.h> int main() { clock_t start, end; double cpu_time_used; start = clock(); // Your code here... end = clock(); cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC; printf("CPU time used: %f seconds\n", cpu_time_used); return 0; }
char *ctime(const time_t *timer)
返回一个表示当地时间的字符串,当地时间是基于参数 timer
。
#include <stdio.h>
#include <time.h>
int main() {
time_t rawtime;
time(&rawtime);
printf("Current local time: %s", ctime(&rawtime));
return 0;
}
double difftime(time_t time1, time_t time2)
返回 time1
和 time2
之间相差的秒数 (time1-time2)
。
#include <stdio.h> #include <time.h> int main() { time_t start, end; double diff; time(&start); // Some operations... time(&end); diff = difftime(end, start); printf("Time taken: %.2f seconds\n", diff); return 0; }
struct tm *gmtime(const time_t *timer)
将 timer
的值分解为 tm
结构,并用协调世界时(UTC)表示。
#include <stdio.h>
#include <time.h>
int main() {
time_t rawtime;
struct tm *info;
time(&rawtime);
info = gmtime(&rawtime);
printf("UTC time: %s", asctime(info));
return 0;
}
struct tm *localtime(const time_t *timer)
将 timer
的值分解为 tm
结构,并用本地时区表示。
#include <stdio.h>
#include <time.h>
int main() {
time_t rawtime;
struct tm *info;
time(&rawtime);
info = localtime(&rawtime);
printf("Local time: %s", asctime(info));
return 0;
}
time_t mktime(struct tm *timeptr)
将指向 timeptr
结构的指针转换为一个依据本地时区的 time_t
值。
#include <stdio.h>
#include <time.h>
int main() {
struct tm timeinfo = { .tm_year=121, .tm_mon=0, .tm_mday=1 };
time_t rawtime = mktime(&timeinfo);
printf("Local time: %s", ctime(&rawtime));
return 0;
}
size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr)
根据 format
中定义的格式化规则,格式化结构 timeptr
表示的时间,并将它存储在 str
中。
#include <stdio.h> #include <time.h> int main() { time_t rawtime; struct tm *info; char buffer[80]; time(&rawtime); info = localtime(&rawtime); strftime(buffer, sizeof(buffer), "Date: %x\nTime: %X\n", info); printf("Formatted time: %s", buffer); return 0; }
#include <stdio.h> #include <time.h> int main() { // 获取当前时间 time_t rawtime; struct tm *info; char buffer[80]; time(&rawtime); info = localtime(&rawtime); // 格式化时间为"YYYY-MM-DD HH:MM:SS"格式 strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", info); // 输出格式化后的时间 printf("Formatted time: %s\n", buffer); return 0; }
time_t time(time_t *timer)
计算当前日历时间,并将其编码为 time_t
格式。
#include <stdio.h>
#include <time.h>
int main() {
time_t rawtime;
time(&rawtime);
printf("Current calendar time: %ld\n", rawtime);
return 0;
}
通过本文,我们详细介绍了C语言标准库中<time.h>
头文件提供的9个函数,并提供了每个函数的完整示例代码。这些函数在处理日期和时间时非常有用,可以帮助开发人员轻松地进行时间相关操作和处理。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。