【C言語】現在の日付を取得する方法

この記事では、Windows環境とUNIX環境での日付取得方法について解説します。

初心者の方でも分かりやすく、具体的な手順とサンプルコードを通じて、現在の日付を取得する方法を学ぶことができます。

目次から探す

Windows環境での日付取得方法

Windows環境での日付を取得する方法について説明します。

Windowsでは、<time.h>ヘッダーファイルを使用して日付を取得することができます。

具体的な手順は以下の通りです。

  1. time.hヘッダーファイルをインクルードします。
  2. time_t型の変数を宣言します。
  3. time()関数を使用して現在の時刻を取得し、変数に代入します。
  4. localtime()関数を使用してtime_t型の時刻をstruct tm型に変換します。
  5. struct tm型の変数から年、月、日を取得します。

以下にサンプルコードを示します。

#include <stdio.h>
#include <time.h>
int main() {
    time_t now;
    struct tm *local;
    // 現在の時刻を取得
    time(&now);
    // 時刻をstruct tm型に変換
    local = localtime(&now);
    // 年、月、日を取得
    int year = local->tm_year + 1900;
    int month = local->tm_mon + 1;
    int day = local->tm_mday;
    // 結果を出力
    printf("現在の日付: %d/%d/%d\n", year, month, day);
    return 0;
}

このコードを実行すると、現在の日付が表示されます。

現在の日付: 2022/1/1

以上がWindows環境での日付取得方法です。

次にUNIX環境での方法について説明します。

UNIX環境での日付取得方法

UNIX環境での日付取得方法について説明します。

UNIX環境では、time関数strftime関数を使用して現在の日付を取得することができます。

time関数を使用した日付取得方法

time関数は、1970年1月1日からの経過秒数を返す関数です。

この経過秒数を利用して、現在の日付を取得することができます。

以下に、time関数を使用して現在の日付を取得するサンプルコードを示します。

#include <stdio.h>
#include <time.h>
int main() {
    time_t currentTime;
    struct tm *localTime;
    char dateString[100];
    // 現在の時刻を取得
    currentTime = time(NULL);
    // 現地時間に変換
    localTime = localtime(¤tTime);
    // 日付を指定したフォーマットで取得
    strftime(dateString, sizeof(dateString), "%Y/%m/%d", localTime);
    // 日付を表示
    printf("現在の日付: %s\n", dateString);
    return 0;
}

上記のコードでは、time関数で現在の時刻を取得し、localtime関数で現地時間に変換しています。

そして、tm構造体のメンバを使用して年月日を表示しています。

このコードを実行すると、現在の日付が表示されます。

strftime関数を使用した日付取得方法

strftime関数は、指定したフォーマットに従って日付を文字列として取得する関数です。

strftime関数を使用することで、より柔軟な日付の表示が可能になります。

以下に、strftime関数を使用して現在の日付を取得するサンプルコードを示します。

#include <stdio.h>
#include <time.h>
int main() {
    time_t currentTime;
    struct tm *localTime;
    char dateString[100];
    // 現在の時刻を取得
    currentTime = time(NULL);
    // 現地時間に変換
    localTime = localtime(¤tTime);
    // 日付を指定したフォーマットで取得
    strftime(dateString, sizeof(dateString), "%Y/%m/%d", localTime);
    // 日付を表示
    printf("現在の日付: %s\n", dateString);
    return 0;
}

上記のコードでは、strftime関数を使用して日付を指定したフォーマットで取得しています。

%Yは年、%mは月、%dは日を表すフォーマット指定子です。

このコードを実行すると、現在の日付が指定したフォーマットで表示されます。

以上がUNIX環境での日付取得方法の説明です。

time関数strftime関数を使用することで、簡単に現在の日付を取得することができます。

目次から探す