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

C言語で現在時刻を表示するデジタル時計プログラムの作り方

C言語を使えば、シンプルなコードで現在の時刻を表示するデジタル時計を作ることができます。時刻を扱う際には、標準ライブラリの time.h ヘッダーファイルを利用します。このヘッダーには、日付や時刻に関連する処理を行うための関数やデータ型が定義されています。

time.h の4つの重要な構成要素

  • size_t:符号なし整数型です。sizeof() 演算子の結果として返される型でもあります。
  • clock_t:プロセッサが消費した時間(プロセッサ時間)を格納するために使用されます。
  • time_t:カレンダー上の日時(暦時間)を格納するために使用されます。
  • struct tm:日付と時刻の情報全体を保持するための構造体です。年・月・日・時・分・秒などがメンバーとして含まれます。

サンプルコード

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

int main() {
    time_t s;
    struct tm* curr_time;

    s = time(NULL);              // 現在の時刻を秒数で取得
    curr_time = localtime(&s);   // localtime()で現地時刻に変換

    // HH:mm:ss 形式で表示
    printf("%02d:%02d:%02d",
        curr_time->tm_hour,
        curr_time->tm_min,
        curr_time->tm_sec);

    return 0;
}

実行結果

23:35:44

コードの解説

まず time(NULL) を呼び出すことで、1970年1月1日からの経過秒数(UNIXエポックタイム)を取得し、time_t 型の変数に保存します。次に、localtime() 関数を使ってその秒数を現地時刻へ変換し、struct tm 構造体へのポインタとして受け取ります。

最後に、printf() の書式指定子 %02d を用いて、時・分・秒をそれぞれ2桁のゼロ埋め形式で出力しています。これにより、「9時5分3秒」のような時刻も「09:05:03」ときれいに表示されます。

  1. 配列の左回転をO(n)時間・O(1)空間で実現するC++プログラムの書き方

    本記事では、サイズnの整数配列と複数の回転位置kが与えられたとき、指定されたインデックスkから配列を左方向へ回転させた結果を出力する方法を、時間計算量O(n)・空間計算量O(1)の制約のもとで解説します。 配列の左回転とは、各要素を左へk個分ずらし、はみ出した要素を右端に折り返して配置する操作です。例えば、配列 {1, 2, 3, 4, 5} を1回左に回転すると {2, 3, 4, 5, 1} になります。 この手法の鍵となるのは剰余演算(%)です。回転後の配列を新たに作成することなく、インデックス計算だけで結果を直接出力できるため、追加のメモリ領域を一切必要としません。 入力例と出力例

  2. Windows 10の時計をインターネット時刻サーバーと同期する方法【5つの解決策】

    Windows 10で日付と時刻を自動的に設定している場合、現在の時刻はインターネット時刻サーバーと同期されて更新されていることをご存じでしょうか。これは、タスクバーやWindows設定に表示される時計が定期的に時刻サーバーの時刻と照合され、常に正確な時刻を保てるようにするための仕組みです。自動同期を行うにはインターネット接続が必須で、オフライン状態では時刻は更新されません。Windows 10では、NTP(Network Time Protocol)を使用してインターネット上の時刻サーバーと通信し、システムクロックを同期しています。もしWindowsの時計が正確でない場合、ネットワークの不具