Определение времени события
Всем привет.
Довольно дурацкий вопрос, но я не так давно прогаю, и поэтому не могу понять этот простой алгоритм. Условие довольно простое — есть событие, у него есть время начала и время окончания. есть текущее время (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>"); } } Скажите, пожалуйста, каким образом можно его упростить, оптимизировать? |
пример скрипта сюда киньте
т.е. чтобы можно было запустить и посмотреть, чего вы хотите. я, например, его работу смутно себе представляю. |
Часовой пояс GMT +3, время: 04:09. |