库函数
下面是头文件 time.h 中定义的函数:
序号 | 函数 & 描述 |
---|---|
1 | char *asctime(const struct tm *timeptr) 返回一个指向字符串的指针,它代表了结构 timeptr 的日期和时间。 |
2 | clock_t clock(void) 返回程序执行起(一般为程序的开头),处理器时钟所使用的时间。 |
3 | char *ctime(const time_t *timer) 返回一个表示当地时间的字符串,当地时间是基于参数 timer。 |
4 | double difftime(time_t time1, time_t time2) 返回 time1 和 time2 之间相差的秒数 (time1-time2)。 |
5 | struct tm *gmtime(const time_t *timer) timer 的值被分解为 tm 结构,并用协调世界时(UTC)也被称为格林尼治标准时间(GMT)表示。 |
6 | struct tm *localtime(const time_t *timer) timer 的值被分解为 tm 结构,并用本地时区表示。 |
7 | time_t mktime(struct tm *timeptr) 把 timeptr 所指向的结构转换为一个依据本地时区的 time_t 值。 |
8 | size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr) 根据 format 中定义的格式化规则,格式化结构 timeptr 表示的时间,并把它存储在 str 中。 |
9 | time_t time(time_t *timer) 计算当前日历时间,并把它编码成 time_t 格式。 |
#include <stdio.h>
#include <string.h>
#include <time.h>
int main()
{
struct tm t;
t.tm_sec = 10;
t.tm_min = 10;
t.tm_hour = 6;
t.tm_mday = 25;
t.tm_mon = 2;
t.tm_year = 89;
t.tm_wday = 6;
puts(asctime(&t));
return(0);
}
Sat Mar 25 06:10:10 1989
#include <time.h>
#include <stdio.h>
int main()
{
clock_t start_t, end_t;
double total_t;
int i;
start_t = clock();
printf("程序启动,start_t = %ld\n", start_t);
printf("开始一个大循环,start_t = %ld\n", start_t);
for(i=0; i< 10000000; i++)
{
}
end_t = clock();
printf("大循环结束,end_t = %ld\n", end_t);
total_t = (double)(end_t - start_t) / CLOCKS_PER_SEC;
printf("CPU 占用的总时间:%f\n", total_t );
printf("程序退出...\n");
return(0);
}
程序启动,start_t = 2614 开始一个大循环,start_t = 2614 大循环结束,end_t = 28021 CPU 占用的总时间:0.025407 程序退出...
#include <stdio.h>
#include <time.h>
int main ()
{
time_t curtime;
time(&curtime);
printf("当前时间 = %s", ctime(&curtime));
return(0);
}
当前时间 = Mon Aug 13 08:23:14 2012
#include <stdio.h>
#include <time.h>
#ifdef _WIN32
#include <Windows.h>
#else
#include <unistd.h>
#endif
int main ()
{
time_t start_t, end_t;
double diff_t;
printf("程序启动...\n");
time(&start_t);
printf("休眠 5 秒...\n");
sleep(5);
time(&end_t);
diff_t = difftime(end_t, start_t);
printf("执行时间 = %f\n", diff_t);
printf("程序退出...\n");
return(0);
}
程序启动... 休眠 5 秒... 执行时间 = 5.000000 程序退出...
#include <stdio.h>
#include <time.h>
int main ()
{
time_t rawtime;
struct tm *info;
char buffer[80];
time( &rawtime );
info = localtime( &rawtime );
printf("当前的本地时间和日期:%s", asctime(info));
return(0);
}
当前的本地时间和日期:Thu Aug 23 09:12:05 2012
/* 输入日期判断是周几 */
#include <stdio.h> /* printf, scanf */
#include <time.h> /* time_t, struct tm, time, mktime */
int main ()
{
time_t rawtime;
struct tm * timeinfo;
int year, month ,day;
const char * weekday[] = { "周日", "周一","周二", "周三","周四", "周五", "周六"};
/* 用户输入日期 */
printf ("年: "); fflush(stdout); scanf ("%d",&year);
printf ("月: "); fflush(stdout); scanf ("%d",&month);
printf ("日: "); fflush(stdout); scanf ("%d",&day);
/* 获取当前时间信息,并修改用户输入的输入信息 */
time ( &rawtime );
timeinfo = localtime ( &rawtime );
timeinfo->tm_year = year - 1900;
timeinfo->tm_mon = month - 1;
timeinfo->tm_mday = day;
/* 调用 mktime: timeinfo->tm_wday */
mktime ( timeinfo );
printf ("那一天是:%s\n", weekday[timeinfo->tm_wday]);
return 0;
}
年: 2018 月: 7 日: 26 那一天是:周四
#include <stdio.h>
#include <time.h>
int main ()
{
time_t rawtime;
struct tm *info;
char buffer[80];
time( &rawtime );
info = localtime( &rawtime );
strftime(buffer, 80, "%Y-%m-%d %H:%M:%S", info);
printf("格式化的日期 & 时间 : |%s|\n", buffer );
return(0);
}
格式化的日期 & 时间 : |2018-09-19 08:59:07|
#include <stdio.h>
#include <time.h>
int main ()
{
time_t seconds;
time(&seconds );
printf("自 1970-01-01 起的小时数 = %ld\n", seconds/3600);
return(0);
}
自 1970-01-01 起的小时数 = 373711