2015年4月20日月曜日

MQL4でEndOfMonth 月末日付を取得する。

MQL4ってEndOfMonth関数ないのですね・・・・・。
真面目に計算する方法もありますが、MQL4にある程度日付に関する関数がありますので、それを活用します。

月頭の0時0分0秒から1秒引いた際の日付を取得しています。

//------------------------------------------------------------------
//指定月の最終日を返す
int EndOfMonth(
int year,      // 年
int month      // 月
)
{
MqlDateTime work;
work.year = year;
work.mon = month + 1;
work.day = 1;
work.hour = 0;
work.min = 0 ;
work.sec = 0 ;

if( work.mon >= 13)
{
work.mon = 1;
work.year = work.year + 1;
}
return TimeDay( StructToTime(work) - 1 );
}