Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C言語のtime.hライブラリ関数を使って現在日時をISO形式で表示する方法

課題

C言語を使用して、現在の日付と時刻をISO標準形式で表示するにはどうすればよいのでしょうか。

解決策

システムから取得した現在の日付と時刻を、ISO形式で出力する方法を解説します。

たとえば、出力結果は「2020年12月15日(月)22:50」のような形式になります。

このプログラムで使用する主な標準ライブラリ関数は以下の2つです。

使用する関数

time()関数
現在の暦時刻(カレンダー時間)を取得して返します。引数にNULLを指定すると、現在時刻がtime_t型の値として返されます。

strftime()関数
時刻情報を指定した書式の文字列に変換します。この関数はtime.hヘッダーファイルに含まれており、書式指定子を組み合わせることで柔軟な日時表示が可能です。

サンプルプログラム

#include<stdio.h>
#include<time.h>
int main(){
    time_t current = time(NULL);
    char datetime[20];
    strftime(datetime,sizeof(datetime),"%a,%d%b%y %H:%M",localtime(&current));
    puts(datetime);
    return 0;
}

プログラムの解説

まずtime()関数で現在時刻を取得し、time_t型の変数currentに格納します。次に、localtime()関数でローカル時間に変換し、strftime()関数を使って「%a(曜日の省略形)、%d(日)、%b(月の省略形)、%y(西暦下2桁)、%H(時)、%M(分)」という書式で文字列に変換しています。最後にputs()関数で結果を表示します。

実行結果

Thu,31 Dec 20 22:41

このように、time.hライブラリの関数を活用することで、わずか数行のコードでシステムの現在日時を任意の形式で簡単に表示できます。

  1. 【C言語】再帰関数を使って2つの整数の最大公約数(GCD)を求める方法

    問題 C言語において再帰関数を使用し、与えられた2つの整数の最大公約数(GCD:Greatest Common Divisor)を求めます。 解決策 再帰関数を用いて2つの整数の最大公約数を求めるには、「ユークリッドの互除法」が利用できます。これは「2つの数のGCDは、大きい方の数を小さい方の数で割った余りと、小さい方の数とのGCDに等しい」という性質を応用した手法です。この計算を余りが0になるまで再帰的に繰り返すことで、GCDを効率よく求めることができます。 アルゴリズム 再帰関数を使って2つの整数のGCDを求めるためのアルゴリズムは、以下の手順に従います。 ステップ1 − 再帰関数を

  2. 【C言語】strncmpライブラリ関数を使って2つの文字列を比較するプログラムの作り方

    strncmpは、C言語のヘッダーファイル「string.h」に定義されている標準ライブラリ関数の一つです。この関数を使用すると、2つの文字列を比較し、どちらの文字列が大きい(辞書順で後ろにある)のかを判定することができます。 strcmp関数(文字列比較) strcmp関数は、2つの文字列を比較するための関数です。戻り値として、両方の文字列の中で最初に一致しなかった文字同士のASCIIコードの差を返します。 構文 int strcmp(string1, string2); 差が0の場合:string1 = string2(2つの文字列は等しい) 差が正の値の場合:string1 &