Можно ли как-то узнать количество дней в месяце средствами MQL?

[Удален]

Привет. Есть желание менять поведение эксперта в два последних дня месяца. Конечно, можно применять логику к 30 и 31 числу, и в большинстве случаев это будет работать. Но, сами понимаете, хотелось бы чего-то красивее. Обычно везде есть функции типа DaysInMonth(), в справке не нашёл ничего подобного. Задача вроде должна быть распространённой, как в народе такое решается?

Благодарю за помощь.

Так оно и так известно. В зависимости от високосности и номера месяца доставать из массива. Потребуется 2 массива с високосными числами и невисокосными числами.

0. Ложим на советы предыдущего оратора.

1. Берем 1 числа текущего месяца.

2. прибавляем 31 день.

3. Берем 1 числа следующего месяца

4. сравниваем 1 и 3

TheXpert:

0. Ложим на советы предыдущего оратора.

Извините, но - "кладём".
Зачем вычислять то, что уже известно? Для этого массивы есть. Это проще, наглядно. Отсутствие вычислений это отсутствие ошибок и отладки кода. Не говорю, что это существенно более быстрые операции.

Я бы взял первое число следующего месяца и отнял (вычел) два дня

alex_ant:

Привет. Есть желание менять поведение эксперта в два последних дня месяца. Конечно, можно применять логику к 30 и 31 числу, и в большинстве случаев это будет работать. Но, сами понимаете, хотелось бы чего-то красивее. Обычно везде есть функции типа DaysInMonth(), в справке не нашёл ничего подобного. Задача вроде должна быть распространённой, как в народе такое решается?

Благодарю за помощь.


А если один из этих дней или даже оба последних дня являются выходными?
int dim(int m,int y){ // m - месяц от 1 до 12, y - год
   int d=30+(m+(m>7))%2-(m==2)*(1+((y%4)!=0));
   return(d);
}

исправлено
Integer:

В этом коде точно нет ошибок?
PapaYozh:

В этом коде точно нет ошибок?

В каких-то случаях неправильно считает?
Одна ошибка точно есть. Неправильно високосность вычисляется.