Правильный способ проверки нулевых дат в Flex / Actionscript?

При работе с Date() объектами в Flex / Actionscript я использую следующую функцию для проверки нулевых дат. Это правильный способ проверить нулевую дату или есть лучшая альтернатива?

public function IsDateNull(date:Date):Boolean
{
  if (date && date.fullYear != 0)
  {
    return true;
  }

  return false;
}

person Jason Towne    schedule 02.03.2011    source источник
comment
Привет, Джейсон, поскольку Date - это класс, расширяющий Object, и не является примитивным типом, он не имеет значения по умолчанию и, следовательно, должен иметь значение NULL, только если он еще не был создан. Заполняется ли Дата из какого-то сопоставления базы данных или чего-то в этом роде? в противном случае не только if (! date), для этого не нужна функция.   -  person shaunhusain    schedule 02.03.2011
comment
@shaunhusain Я собирался сказать нечто подобное. Вы должны опубликовать это как настоящий ответ. Я чувствую себя виноватым, делая это и крадя Карму, которая по праву принадлежит тебе.   -  person JeffryHouser    schedule 02.03.2011
comment
@shaunhusain, даты поступают из разных мест: вызовы данных серверной части, DateField.selectedDate и т. д. Я сталкивался с ситуациями, когда мне приходилось устанавливать DateField.selectableRange на основе значения selectedDate другого DateField или данных серверной части. В этих ситуациях объект Date, который я хотел бы использовать, может иметь значение NULL. Вот почему я использую этот чек. Я надеюсь, что в этом есть смысл. РЕДАКТИРОВАТЬ: И, пожалуйста, добавьте это в качестве ответа! Я с удовольствием проголосую за. :)   -  person Jason Towne    schedule 02.03.2011
comment
Причина, по которой у меня есть проверка fullYear, заключается в том, что, когда данные поступают из серверной части через FluorineFX, он использует дату по умолчанию - 31 декабря 2001 года, если по какой-то причине дата не была указана.   -  person Jason Towne    schedule 02.03.2011


Ответы (1)


Поскольку Date - это класс, расширяющий Object, а не примитивный тип, он не имеет значения по умолчанию и поэтому должен иметь значение NULL, только если он еще не создан. Заполняется ли Дата из какого-то сопоставления базы данных или чего-то в этом роде? иначе не просто

if(!date)

or

if(date==null)

для этого нет необходимости иметь функцию. Для DateField.selectedDate значение должно быть нулевым, если дата еще не выбрана. Первоначально это не было опубликовано в качестве ответа, потому что я не совсем понимаю, с какой проблемой сталкивается, но похоже, что существует множество случаев. В зависимости от уровня обслуживания и базового JDBC (или другого коннектора) к БД, а также от типа БД и типа данных значения могут различаться. Как правило, Date будет иметь значение NULL, пока для него не будет получена память посредством вызова конструктора.

Спасибо, Шон

person shaunhusain    schedule 02.03.2011