# DaysOfMonth() question - page 2

384

Thirteen:

Try:

`if (Month() == 1 && Day() >= 30) return (0);`

it works ... I thought day() returns 0-7 only - sorry my mistake ;-)

```        if (!TradeMonthEnd && Month() == 1 && Day() >= 30) return(0);
if (!TradeMonthEnd && Month() == 2 && Day() >= 27) return(0);
if (!TradeMonthEnd && Month() == 3 && Day() >= 30) return(0);
if (!TradeMonthEnd && Month() == 4 && Day() >= 29) return(0);
if (!TradeMonthEnd && Month() == 5 && Day() >= 30) return(0);
if (!TradeMonthEnd && Month() == 6 && Day() >= 29) return(0);
if (!TradeMonthEnd && Month() == 7 && Day() >= 30) return(0);
if (!TradeMonthEnd && Month() == 8 && Day() >= 30) return(0);
if (!TradeMonthEnd && Month() == 9 && Day() >= 29) return(0);
if (!TradeMonthEnd && Month() == 10 && Day() >= 30) return(0);
if (!TradeMonthEnd && Month() == 11 && Day() >= 29) return(0);
if (!TradeMonthEnd && Month() == 12 && Day() >= 30) return(0);```
3

CHECK ANY MONTH WITH THIS CODE:

int DaysOfMonth(int cYear = 2016, int cMonth = 2, int cDay = 29) {

if (cYear < 1969 || cMonth < 1 || cMonth > 12 || cDay < 1 || cDay > 31) return(0);

datetime xDate;

int result = 0;

for (int i = cDay+1; i <= cDay + 31; i++) {

xDate = StrToTime(IntegerToString(cYear)+"."+IntegerToString(cMonth)+"."+IntegerToString(i));

if ( TimeDay(xDate) > cDay ) result = i;

else break;

}

return(result);

}