トップ  >  リファレンス  >  基本  >  データ型  >  整数型  > 日付時刻定数[datetime]
スポンサーリンク
検索
カスタム検索
リファレンスツリー
オススメ

天才数学者のエドワード・オークリー・ソープの物語とジョン・ケリーの公式は必見です。
日付時刻定数[datetime]


日付時刻型(datetime)は1970年1月1日からの経過秒数を保存します。
datetimeは8バイトのメモリを使用します。


日付時刻定数は文字通りの文字列として使用する事が出来ます。
年、月、日(または日、月、年)、時間、分と秒の数値を示す6つのパーツで構成されます

日付時刻定数は、D文字から始まりシングルクォーテーションで日付時刻を囲みます。
日付時刻の範囲は1970年1月1日 〜 3000年12月31日です。

日付(年月日)と時間(時分秒)は省略する事が出来ますが、
文字通りの日付仕様なので、年月日を設定する事が望ましいです。
年月日の設定が無い場合コンパイラが警告を返します。


サンプルソース:
    datetime temp_time;
    
    temp_time = D'2015.01.01 00:00';     // 2015年 1月 1日  0時 0分 0秒設定
    temp_time = D'1980.07.19 12:30:27';  // 1980年 7月19日 12時30分27秒設定(yyyy/dd/mm)
    temp_time = D'19.07.1980 12:30:27';  // 1980年 7月19日 12時30分27秒設定(mm/dd/yyyy)
    temp_time = D'19.07.1980 12';        // 1980年 7月19日 12時 0分 0秒設定(分秒省略)
    temp_time = D'01.01.2004';           // 2004年 1月 1日  0時 0分 0秒設定(時分秒省略)
    temp_time = __DATE__;               // コンパイル時の年月日を設定
    temp_time = __DATETIME__;          // コンパイル時の年月日時分秒を設定 

    temp_time = D'';                     // コンパイル時の日時を設定(コンパイル時に警告発生)


管理人の勝手なコメント:
実際に試してみると、日時と時間を省略すると警告が出ますが、時間のみの場合は警告は出ませんでした。
マニュアル上では警告が出ると記載されているので、マニュアルに従いましょう。



datetime型の表示方法はコンパイルモード(#property strict)に依存します。

サンプルソース:

#property strict

int OnInit(){

    datetime temp_time;

    temp_time = D'1970.01.01 00:01:02';                           // 1970年 1月 1日  0時 1分 2秒設定

    Print( (string)temp_time );                                  // 文字列 "1970.01.01 00:01:02"を表示
    Print( TimeToStr(temp_time, TIME_DATE | TIME_SECONDS)); // 文字列 "1970.01.01 00:01:02"を表示

}


#property strict無しで、日付表現させたい場合はTimeToStrで文字列変換します。
サンプルソース:

// #property strict

int OnInit(){

    datetime temp_time;

    temp_time = D'1970.01.01 00:01:02';                           // 1970年 1月 1日  0時 1分 2秒設定

    Print( (string)temp_time );                                 // 文字列 "62" を表示 (経過秒数)
    Print( TimeToStr(temp_time, TIME_DATE | TIME_SECONDS)); // 文字列 "1970.01.01 00:01:02"を表示
    Print( TimeToStr(temp_time, TIME_DATE));                  // 文字列 "1970.01.01"を表示
    Print( TimeToStr(temp_time, TIME_SECONDS));               // 文字列 "00:01:02"を表示

}

スポンサーリンク



Copyright ©2015 MT4でEA自作しちゃお〜 All Rights Reserved.


Top

inserted by FC2 system