TimeToStruct 関数
この関数は、指定した日時(datetime型)を構造体変数である MqlDateTime型に変換します。
MqlDateTime型には、次の8個の日時データが格納されています。
①西暦 年 ②西暦 年 ③西暦 日 ④時間(時) ⑤時間(分) ⑥時間(秒) ⑦曜日(0~6で表示。0=日, 1=月, 2=火, 3=水, 4=木, 5=金, 6=土) ⑧本年の経過日数(1月1日は0でカウント)
各情報の呼び出し方は使用例を参考にしてください。
データ型と構成・戻り値
void TimeToStruct(①, ②);
戻り値は、成功した場合は true、それ以外は falseが返されます。
発生するエラーについては、GetLastError関数で取得することができます。
引数 [2]
TimeToStruct関数は 2個の引数で構成されます。
番 号 | 引数名 | データ型 | 単位 | 初期値 | 説明 |
---|---|---|---|---|---|
① | dt | datetime | - | - | 変換する日時(datetime型)。 |
② | dt_struct | MqlDateTime& | - | - | MqlDateTime型の変数。 |
①の引数は、1970年1月1日以降の秒数で表示するようになっていますが、通常の使用では使いにくいので「(datetime)”2000.01.01 00:00:00″」のようにキャストして使うのが一般的です。
使用例
TimeToStruct関数を使ったMqlDateTime型変数への変換
TimeToStruct関数を使って指定した日時をMqlDateTime型変数へ変換します。変換後、確認のため Print関数で出力します。各情報の出力方法は、Print関数に記載されている書き方を参考にしてください。
コード
// TimeToStruct関数を使ったMqlDateTime型変数への変換
#property strict
void OnInit() {
datetime dt = (datetime)"2023.03.21 12:34:56"; // 指定日時
MqlDateTime mqldt; // MqlDateTime型変数の設定
TimeToStruct(dt, mqldt); // MqlDateTime型変数へデータを格納
string week; // 取得される0~6の値を曜日にします
if(mqldt.day_of_week==0) {
week = "日";
} else if(mqldt.day_of_week==1) {
week = "月";
} else if(mqldt.day_of_week==2) {
week = "火";
} else if(mqldt.day_of_week==3) {
week = "水";
} else if(mqldt.day_of_week==4) {
week = "木";
} else if(mqldt.day_of_week==5) {
week = "金";
} else {
week = "土";
}
Print(mqldt.year,"年",mqldt.mon,"月",mqldt.day,"日",mqldt.hour,"時",mqldt.min,"分",mqldt.sec,"秒 ",week,"曜日 本年",mqldt.day_of_year,"日経過");
}
コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)