【C言語】ファイル名に現在日時を付け加える方法

この記事では、C言語でファイル名に現在の日時を付け加える方法について解説します。

具体的には、time.hヘッダーファイルを使用して現在の日時を取得し、指定したフォーマットに従ってファイル名に日時を付け加える手順を紹介します。

目次から探す

ファイル名に現在日時を付け加える方法

1. time.hヘッダーファイルのインクルード

ファイル名に現在日時を付け加えるためには、time.hヘッダーファイルをインクルードする必要があります。

time.hヘッダーファイルには、日付と時刻に関連する関数や構造体が定義されています。


#include <time.h>

2. 現在の日時を取得する

現在の日時を取得するためには、time関数を使用します。

time関数は、1970年1月1日午前0時からの経過秒数を返します。


time_t now;
time(&now);

3. tm構造体に変換する

time関数で取得した経過秒数を、tm構造体に変換するためには、localtime関数を使用します。

localtime関数は、経過秒数を現地の日付と時刻に変換します。


struct tm *local_time;
local_time = localtime(&now);

4. ファイル名に日時を付け加える

tm構造体から取得した日時情報を使って、ファイル名に日時を付け加えます。

以下の例では、ファイル名の末尾に年月日_時分秒の形式で日時を付け加えています。


char file_name[100];
sprintf(file_name, "sample_%04d%02d%02d_%02d%02d%02d.txt", local_time->tm_year + 1900, local_time->tm_mon + 1, local_time->tm_mday, local_time->tm_hour, local_time->tm_min, local_time->tm_sec);

5. ファイル名の確認と使用

最後に、生成されたファイル名を確認し、必要に応じて使用します。


printf("ファイル名: %s\n", file_name);
FILE *file;
file = fopen(file_name, "w");
if (file == NULL) {
    printf("ファイルを開けませんでした。\n");
    return 1;
}
// ファイルの書き込み処理
fclose(file);

以上の手順に従って、C言語でファイル名に現在日時を付け加えることができます。

ここまでのプログラムを完成させたものがこちらです。

#include <stdio.h>
#include <time.h>

int main(void){

    time_t now;
    time(&now);

    struct tm *local_time;
    local_time = localtime(&now);

    
    char file_name[100];
    sprintf(file_name, "sample_%04d%02d%02d_%02d%02d%02d.txt", local_time->tm_year + 1900, local_time->tm_mon + 1, local_time->tm_mday, local_time->tm_hour, local_time->tm_min, local_time->tm_sec);


    printf("ファイル名: %s\n", file_name);
    FILE *file;
    file = fopen(file_name, "w");
    if (file == NULL) {
        printf("ファイルを開けませんでした。\n");
        return 1;
    }
    // ファイルの書き込み処理
    fclose(file);

}
ファイル名: sample_20230629_010337.txt

実行すると、生成されたファイル名が表示され、ファイルが作成されます。

1 2
目次から探す