現在時間を取得して表示するプログラムです。
#include <stdio.h>
#include <time.h>
int main(void)
{
time_t tmGenzai = time(NULL);
struct tm pGenzai;
localtime_s(&pGenzai, &tmGenzai);
printf("現在の日時は%d年%d月%d日%d時%d分%d秒です。\n",
pGenzai.tm_year + 1900, pGenzai.tm_mon + 1, pGenzai.tm_mday,
pGenzai.tm_hour, pGenzai.tm_min, pGenzai.tm_sec);
}
まず初めに、時間処理関数を使うために、time.h をインクルードします。
次に現在時間を取得しています。
time_t tmGenzai = time(NULL);
localtime_s(&pGenzai, &tmGenzai);
time 関数で取得した段階では、
データが年月日、時分秒などに分かれていないので、
localtime_s 関数で分けてあげます。
すると、struct tm 構造体にそれぞれのデータが格納されますので、
そのまま表示しています。
このプログラムでは、
localtime_s関数が失敗した時の処理は書いていません。
“年”は、現在年数より-1900引かれた数が格納されているので、
1900を足して表示しています。
“月”は、0 = 1月になっているので、+1 してから表示しています。
その他、曜日は表示していませんが、tm_wdayメンバに
“0 = 日曜日” のような情報でしっかりと格納されています。