Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.10.2011, 17:39
Интересующийся
Отправить личное сообщение для sinh Посмотреть профиль Найти все сообщения от sinh
 
Регистрация: 22.05.2010
Сообщений: 11

Определение времени события
Всем привет.

Довольно дурацкий вопрос, но я не так давно прогаю, и поэтому не могу понять этот простой алгоритм.

Условие довольно простое — есть событие, у него есть время начала и время окончания. есть текущее время (begin, end, now). Надо определить событие начнется в будущем, закончилось в прошлом, или еще продолжается.
Проблема в том, что не для всех событий есть время окончания или начала. Может быть лишь что-то одно. Время текущее понятное дело есть всегда. На данный момент у меня получился быдлокод:


var now = new Date().valueOf();
if (!b.Начало && !b.Окончание) {} else if (b.Начало && !b.Окончание) {
  var d_begin = rightDate(b.Начало, 4, false);
  if (now < d_begin) {
    newsItem.append("<p class='meta future'>" + region + "<br />Начнётся с " + rightDate(b.Начало, 4, true) + "</p>");
  } else {
    newsItem.append("<p class='meta achtung'>" + region + "<br />Продолжается с " + rightDate(b.Начало, 4, true) + "       </p>");
  }
} else if (!b.Начало && b.Окончание) {
  var d_end = rightDate(b.Окончание, 4, false);
  if (now < d_end) {
    newsItem.append("<p class='meta achtung'>" + region + "<br />Продлится до " + rightDate(b.Окончание, 4, true) + "  </p>");
} else {
newsItem.append("<p class='meta complete'>" + region + "<br />Завершилось " + rightDate(b.Окончание, 4, true) + "</p>");
}
} else {
  var d_begin = rightDate(b.Начало, 4, false);
  var d_end = rightDate(b.Окончание, 4, false);
  if (d_begin <= now && now <= d_end) {
    newsItem.append("<p class='meta achtung'>" + region + "<br />Продолжается с " + rightDate(b.Начало, 4, true) + " до "    + rightDate(b.Окончание, 4, true) + "</p>");
  } else if (now < d_begin) {
    newsItem.append("<p class='meta future'>" + region + "<br />Начнется с " + rightDate(b.Начало, 4, true) + " до " +   rightDate(b.Окончание, 4, true) + "</p>");
  } else {
    newsItem.append("<p class='meta complete'>" + region + "<br />Завершилось " + rightDate(b.Начало, 4, true) + " — " +    rightDate(b.Окончание, 4, true) + "</p>");
  }
}


Скажите, пожалуйста, каким образом можно его упростить, оптимизировать?

Последний раз редактировалось sinh, 01.10.2011 в 17:42.
Ответить с цитированием
  #2 (permalink)  
Старый 01.10.2011, 18:42
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

пример скрипта сюда киньте

т.е. чтобы можно было запустить и посмотреть, чего вы хотите.

я, например, его работу смутно себе представляю.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача параметров в колбэки и дальнейшее их вешанье на события. Gremlin Общие вопросы Javascript 17 13.08.2011 08:54
блог с отсчетом времени до события Vladimir_Kl Events/DOM/Window 1 22.04.2011 22:41
Обратный отсчет времени tenorica Общие вопросы Javascript 2 19.04.2011 23:30
События onclick,ondblclick,onmousedown,onmouseup и т.п. с одного хтмл объекта. PashaTurok Events/DOM/Window 0 07.01.2011 21:18
Явный вызов процедуры обработки события. supchik Общие вопросы Javascript 18 27.01.2009 13:16