当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C语言 mktime用法及代码示例


C语言time头文件(time.h)中mktime函数的用法及代码示例。

用法:

time_t mktime (struct tm * timeptr);
将tm结构转换为time_t
返回类型的值time_t代表当地时间tm指向的结构timeptr(可以修改)。

此函数执行反向翻译,localtime做。

成员的值tm_wdaytm_ydaytimeptr会被忽略,并且其他成员的值也会被解释,即使超出了它们的有效范围(请参阅struct tm)。例如,tm_mday可能包含以上值31,因此将其解释为所选月份的最后一天之后的日子。

对该函数的调用会自动调整以下成员的值timeptr如果它们是off-range或-tm_wdaytm_yday-如果它们的值与其他成员描述的日期不匹配。

参数

timeptr
指向一个指针tm包含日历时间的结构,该时间细分为各个部分(请参见struct tm)。

返回值

A time_t与作为参数传递的日历时间相对应的值。
如果无法表示日历时间,则值为-1返回。

示例

/* mktime example: weekday calculator */
#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[] = { "Sunday", "Monday",
                             "Tuesday", "Wednesday",
                             "Thursday", "Friday", "Saturday"};

  /* prompt user for date */
  printf ("Enter year: "); fflush(stdout); scanf ("%d",&year);
  printf ("Enter month: "); fflush(stdout); scanf ("%d",&month);
  printf ("Enter day: "); fflush(stdout); scanf ("%d",&day);

  /* get current timeinfo and modify it to the user's choice */
  time ( &rawtime );
  timeinfo = localtime ( &rawtime );
  timeinfo->tm_year = year - 1900;
  timeinfo->tm_mon = month - 1;
  timeinfo->tm_mday = day;

  /* call mktime: timeinfo->tm_wday will be set */
  mktime ( timeinfo );

  printf ("That day is a %s.\n", weekday[timeinfo->tm_wday]);

  return 0;
}


输出:

Enter year: 2000
Enter month: 5
Enter day: 20
That day is a Saturday.



相关用法


注:本文由纯净天空筛选整理自C标准库大神的英文原创作品 C mktime function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。