mktime

提供: RAD Studio
移動先: 案内検索

time.h:インデックス への移動


ヘッダー ファイル

time.h

カテゴリ

日付/時刻ルーチン

プロトタイプ

time_t mktime(struct tm *t);

説明

時間をカレンダ形式に変換します。

t が指す構造体内の時間を、時刻関数で使用されるのと同じ形式のカレンダ時間に変換します。フィールド tm_sec、tm_min、tm_hour、tm_mday、tm_mon の元の値は、tm 構造体で記述される範囲に制限されません。これらのフィールドは、適切な範囲内になければ、調整されます。フィールド tm_wday と tm_yday の値は、それら以外のフィールドが調整された後で計算されます。

tm_isdst(夏時間)フィールドは、関数 mktime の呼び出し後に正しい値に調整されます。さらに、tm_isdst は tm_hour の値の調整に使用されます。たとえば、tm_isdst の値が 1 でも現在の日付が DST でない場合、mktime は tm_hour を更新し(tm_hour = tm_hour - 1)、tm_isdst を 0 に設定します。

カレンダ時間の許容範囲は、1970 年 1 月 1 日 00 時 00 分 00 秒から 2038 年 1 月 19 日 03 時 14 分 07 秒までです。

戻り値

成功した場合、上記どおりのカレンダ時間を返します。

エラーの場合(カレンダ時間を表すことができない場合)は、-1 を返します。



 #include <stdio.h> #include <time.h>
         char *wday[] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday",
         "Saturday", "Unknown"}; int main(void) { struct tm time_check; int year, month, day; /*
         曜日を求める年、月、日を入力する */ printf("Year: "); scanf("%d",
         &year); printf("Month: "); scanf("%d", &month); printf("Day: "); scanf("%d",
         &day); /* time_check 構造体にデータを読み込む */ time_check.tm_year = year -
         1900; time_check.tm_mon = month - 1; time_check.tm_mday = day; time_check.tm_hour = 0;
         time_check.tm_min = 0; time_check.tm_sec = 1; time_check.tm_isdst = -1; /* mktime を呼び出して、構造体の曜日フィールドに値を設定する */ if (mktime(&time_check) == -1)
         time_check.tm_wday = 7; /* 曜日を出力する */ printf("That day is a %s\n",
         wday[time_check.tm_wday]); return 0; }



移植性



POSIX Win32 ANSI C ANSI C++

+

+

+

+