構造体変数に変換 TimeToStruct 関数

関数

日時関数

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個の引数で構成されます。


引数名データ型単位初期値説明
dtdatetime変換する日時(datetime型)。
dt_structMqlDateTime&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,"日経過");
}

コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)

結果

タイトルとURLをコピーしました