Up

時刻取得サンプル・プログラム

C++/Linux(Fedora 16)

 

  Linux (Fedora 16) での標準C++ による時刻取得プログラム例を以下のように作成してみた。

===============================================

#include <iostream>

#include <time.h>

 

using namespace std;

 

int char_to_int( char c ){

        return int(c) - int('0');

}

 

void what_time( int & year, char * month, char * week,

                        int & day, int & hour, int & min, int & sec ){

        time_t tm;

        time( &tm );

        char *vtm;

        vtm = ctime( &tm );

        week[0] = vtm[0];

        week[1] = vtm[1];

        week[2] = vtm[2];

        week[3] = 0;

        month[0] = vtm[4];

        month[1] = vtm[5];

        month[2] = vtm[6];

        month[3] = 0;

        day = 10 * char_to_int(vtm[8]) + char_to_int(vtm[9]);

        hour = 10 * char_to_int(vtm[11]) + char_to_int(vtm[12]);

        min = 10 * char_to_int(vtm[14]) + char_to_int(vtm[15]);

        sec = 10 * char_to_int(vtm[17]) + char_to_int(vtm[18]);

        year = 1000 * char_to_int(vtm[20])

                + 100 * char_to_int(vtm[21])

                + 10 * char_to_int(vtm[22])

                + char_to_int(vtm[23]);

}

 

int main(){

        int year, day, hour, min, sec;

        char month[4], week[4];

        what_time( year, month, week, day, hour, min, sec );

        cout << "Year: " << year << endl;

        cout << "Week: " << week << endl;

        cout << "Month: " << month << endl;

        cout << "day: " << day << endl;

        cout << "hour: " << hour << endl;

        cout << "min: " << min << endl;

        cout << "sec: " << sec << endl;

 

        return 0;

}

===============================================

 上のプログラムの実行結果例は図1のようになる。

図1

 

 Fedora 16g++ コマンドがインストールされていないときは

su コマンドを実行してから

yum groupinstall “Development Tools”

と実行するとインストールすることができ、「g++」が使えるようになる。Development Tools の間に空白文字が入っているので、全体を で囲む。

 

Up