MQL4で曜日を計算する方法

現在の曜日を取得する


現在の曜日を取得するにはDayOfWeek関数を使用します。

int DayOfWeek();

DayOfWeek関数の戻り値は整数です。
戻り値の数値が曜日を表しています。
0:日曜、1:月曜、2:火曜、3:水曜、4:木曜、5:金曜、6:土曜

DayOfWeek関数の戻り値が1の場合は現在は月曜日です。

if(DayOfWeek() == 1){
Comment("月曜日です。");
}


特定の日付の曜日を取得する


特定の日付(例えば2016年5月20日)の曜日を計算します。

まず日付のデータを用意します。
datetime型の変数であればそのまま使用できますが、日付をstring型で保持している場合にはStringToTime関数でdatetime型に変換しておきます。

datetime StringToTime(
string value
);

引数に変換したいstring型の日付を指定することでdatetimeに変換した結果を受け取れます。

string s_value = "2016-05-20";
datetime dt_value = StringToTime(s_value);


次にdatetime型で用意した日付を、MqlDateTime型の構造体に変換します。
datetime型の変数をMqlDateTime型に変換するには、TimeToStruct関数を使用します。

void TimeToStruct(
datetime dt,
MqlDateTime& dt_struct
);

第一引数にdatetime型の日付を、第二引数に結果を受け取る構造体を指定します。
第二引数は参照渡しですので、事前にMqlDateTime型の構造体を作成しておく必要があります。

MqlDateTime dt_struct;
TimeToStruct(dt_value, dt_struct);


最後に構造体から曜日を取得します。
曜日は、
構造体名.day_of_week
の形式で取得することができます。
DayOfWeekの場合と同様に0が日曜日、6が土曜日となっています。

Comment(dt_struct.day_of_week);

TwitterでシェアFacebookでシェアGoogle+でシェアはてなブックマークに追加

TOPへ