當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。