【C 库函数

您所在的位置:网站首页 time库函数 【C 库函数

【C 库函数

2024-01-19 08:49| 来源: 网络整理| 查看: 265

C 库函数 - mktime()

C 标准库 -

描述

C 库函数 time_t mktime(struct tm *timeptr) 把 timeptr 所指向的结构转换为自 1970 年 1 月 1 日以来持续时间的秒数,发生错误时返回-1。

声明

下面是 mktime() 函数的声明。

time_t mktime(struct tm *timeptr) 参数 timeptr – 这是指向表示日历时间的 time_t 值的指针,该日历时间被分解为以下各部分。下面是 timeptr 结构的细节: 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 到 11 */ int tm_year; /* 自 1900 起的年数 */ int tm_wday; /* 一周中的第几天,范围从 0 到 6 */ int tm_yday; /* 一年中的第几天,范围从 0 到 365 */ int tm_isdst; /* 夏令时 */ }; 返回值

该函数返回自 1970 年 1 月 1 日以来持续时间的秒数。如果发生错误,则返回 -1 值。

实例

下面的实例演示了 mktime() 函数的用法。

1、常规用法 #include #include int main () { int ret; struct tm info; char buffer[80]; info.tm_year = 2021 - 1900; info.tm_mon = 7 - 1; info.tm_mday = 4; info.tm_hour = 0; info.tm_min = 0; info.tm_sec = 1; info.tm_isdst = -1; ret = mktime(&info); if( ret == -1 ) { printf("Error: unable to make time using mktime\n"); } else { strftime(buffer, sizeof(buffer), "%c", &info ); printf(buffer); } return(0); }

让我们编译并运行上面的程序,这将产生以下结果:

Sun Jul 4 00:00:01 2021 2、输入日期判断是周几 #include /* printf, scanf */ #include /* 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 那一天是:周四 C 库函数 - difftime()

C 标准库 -

描述

C 库函数 double difftime(time_t time1, time_t time2) 返回 time1 和 time2 之间相差的秒数 (time1 - time2)。这两个时间是在日历时间中指定的,表示了自纪元 Epoch(协调世界时 UTC:1970-01-01 00:00:00)起经过的时间。

声明

下面是 difftime() 函数的声明。

double difftime(time_t time1, time_t time2) 参数 time1 – 这是表示结束时间的 time_t 对象。time2 – 这是表示开始时间的 time_t 对象。 返回值

该函数返回以双精度浮点型 double 值表示的两个时间之间相差的秒数 (time1 - time2)。

实例

下面的实例演示了 difftime() 函数的用法。

实例 #include #include #ifdef _WIN32 #include #else #include #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 程序退出...


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3