Ошибка в функции "TimeDay()"!!!

 

Описание функции:

int TimeDay(datetime date)

Возвращает день месяца (1 - 31) для указанной даты.

Вот скрипт:

void start()
 {
  Comment (TimeDay (0));
 }

У меня на Висте х64 получается ноль!!! Эта функция не должна возвращать ноль!!!

Правда, надо сказать, что иногда это компилируется правильно и получается единица.

Какой-либо закономерности не обнаружил.



 

А почему TimeDay (0) ?

если правильно TimeDay (указанная дата)

0 что это за дата? 1970 год?


 
Да.
 
Zhunko >>:
Да.

я понял что даты 0 не существует! первая дата это 1, тогда все правильно

void start()
 {
  Comment (TimeDay (1));
 }
 

Даты нулевой не существует, а время нулевое существует.

00:00:00 - это что? Это начало дня.

У этой функции параметр является количеством секунд от начала Форексного века.

 

Видимо ключевое здесь это:

Параметры:
date - Дата, представленная в виде количества секунд, прошедших после 00:00 1 января 1970 года.

где 0 получается ещё не прошедшее время с той даты...

 
Ноль является частным случаем прошедчего времени в параметре. Или ноль не число?
 
Да и дело не в параметре, а возвращаемом значении. Не должна эта функция возвращать ноль!
 

Эксперимент...

в качестве параметра 0.

=========== 000 =====================
TimeDay=0
TimeDayOfWeek=0
TimeDayOfYear=1
TimeHour=0
TimeMinute=0
TimeMonth=1
TimeSeconds=0
TimeYear=1900

 
Zhunko >>:
Да и дело не в параметре, а возвращаемом значении. Не должна эта функция возвращать ноль!

о это послелняя дата 1969 года а 1 это первая дата 1970

 
Уже проводил этот эксперимент. Всё показывает правильно кроме дня месяца.
Причина обращения: