プログラムを参照するために<CTIME> C ++ヘッダファイルは、使用する前に、操作の日時のC言語の構造と機能を継承します
4時間関連の種類があります。clock_t、time_t型、size_t型、およびTM。clock_t型、size_tの、のtime_tとシステム時刻と日付が特定の整数として表すことができます。
C構造の形態で日時を保存するtm構造体、TM構造次のように定義されます:
構造体(TM) { int型のtm_sec; // 秒、0〜59の正常範囲が、61を可能にすることである INT tm_min; // 分59 0〜 INT tm_hour; // H 23 0〜ある INT tm_mday; // 月の最初の数一日の int型 tm_mon; // 5月11日〜0 int型のtm_year; // 数年1900年に始まり、以来、 int型の tm_wdayコンポーネント; // 週の最初の数日間 のint tm_yday; // 年の最初の日 のint tm_isdstが; // サマータイムとき }
関連機能:
機能 |
説明 |
time_tの時間(time_t型*時間)。 |
この機能は、カレンダー時間の現在のシステムを返します。秒数後の1970年1月1日以来、システムは時間がなかった場合は、-1を返します |
するchar * ctimeの(定数のtime_t *時間)。 |
:分:秒年\ nは\ 0この機能は、ローカルタイム、文字列の日月年時間を表す文字列へのポインタを返します。 |
構造体tm * localtimeの(のconst time_t型*時間)。 |
この機能は、ローカル時刻tm構造体を示すポインタへのポインタを返します。 |
clock_tクロック(無効)。 |
プログラムの実行時間が利用できない場合、関数から使用時間プロセッサ時間を返し、または-1 |
char *の関数は、asctime(constの構造体tm *時間)。 |
日月年時間:分:秒年\ nを\ 0この関数は、文字列へのポインタを返し、情報構造保存された時点を含む文字列は、フォームの中に戻りました |
構造体tm * gmtimeは(のconst time_t型*時間)。 |
この機能は、時間を指し示すポインタを返し、時間は協定世界時(UTC)と、tm構造体であり、また、グリニッジ標準時(GMT)表現として知られています |
time_t型はmktime(構造体tm *時間)。 |
この関数は、コンフィギュレーションに格納された時点に対応するカレンダー時間、時間を戻します |
ダブルdifftime(time_t型のTIME2、time_t型時間1)。 |
この関数は、時刻1とTIME2間の位相差の秒数を返します。 |
size_t型のstrftime()。 |
この関数は、日付と時刻の指定されたフォーマットをフォーマットするために使用することができます |
例:
#include <iostreamの> する#include <ctimeの> 使用して 名前空間STD; int型のmain() { // 現在のシステム日付と時刻の初期化0に基づい のtime_t今の時間=(0 ); / 列次に変換 チャー * DT = CTIME (&今); COUT << " ローカルの日付と時刻: " << DT << てendl; // 構造体は今、TMに変換し 、TM = gmtmのgmtime、*(&今); DT = 関数は、asctime(gmtm); COUT << " UTC日時: " << << DTendl; リターン 0 ; }
結果:
exbot @ Ubuntuの:〜/ wangqinghe / C ++ /時間の$ ./time
現地日時:月8月5日午後二時54分25秒2019
UTC日時:月8月5日6時54分25秒2019
時間tmを用いた構造のフォーマット
書式#include <iostreamの> の#include <ctimeの> 使用して 名前空間はstdを、 INT メイン() { のtime_tは現在時間(= 0 )。 裁判所未満 << 「1970年から続い秒経過:」 <<今すぐ<< てendl; TM * LTM = localtimeの(&今)。 裁判所未満 << " 年:" << 1900 + ltm->のtm_year << てendl; 裁判所未満 << " 月:" << 1 + ltm-> tm_mon < < てendl; COUT<< " 当日:" << ltm-> tm_mday << てendl; 裁判所未満 << " 時間:" << ltm-> tm_hour << " :" ; coutの << ltm-> tm_min << " :" ; coutの << ltm->のtm_sec << てendl; リターン 0 ; }
結果:
exbot @ Ubuntuの:〜/ wangqinghe / C ++ /時間の$ ./time1
その後、1970年からの秒が経過:1564988067
年:2019
月:8
日:5
時間:午前14時54分27秒
XX:XX出力形式20XX-XX-XX XXに:
#include <iostreamの> する#include <CTIME> の#include <cstdlib> の#include <cstdioを> 使用して名前空間STD。文字列Get_Current_Date(); INT メイン() { COUT。<< Get_Current_Date()c_str()<< ENDL。 リターン0 ; } ストリングGet_Current_Date() { time_tのnowtime。 nowtime = 時間(NULL)。 チャー TMP [ 64 ]。 strftime(TMP、はsizeof(TMP)、" %Y-%M-%D%H:%のM:%S " 、LOCALTIME(&nowtime))。 返すTMPを。 }
結果:
exbot @ Ubuntuの:〜/ wangqinghe / C ++ /時間の$ ./time2
2019年8月5日午前15時〇〇分14秒