у тебя здесь 6 - 8,14 - 16,20 - 8,14 - 16,20 - 21
1 - 1 - 3 -1 -1 или я что то не понимаю ? for (var a = [6, 7, 8, 14, 15, 16, 20, 21,6, 7, 8, 14, 15, 16, 20, 21], c = [], temp, i = 0; i < a.length; i++) if (!temp && (temp = a[i]), void 0 !== a[i + 1] && 1 < a[i + 1] - a[i] || i == a.length - 1) c.push(temp + " - " + a[i]), temp = !1; alert(c) ладно пойду делом займусь )) |
silent,
два дня для тестирования это уже перебор! алгоритм для суток только |
извини я не так понял поставленную задачу :)
|
Алгоритм - разбить на диапазоны по условию разница времени между датами больше 1 часа и вывести первое и последнее значение каждого диапазона в формате дата - первое значение времени - последнее значение времени. Почему я и предложил перевести все в long сперва. Ибо не факт что эти красивые циферки не испортятся на практике.
|
Цитата:
|
Покажите ему юникс время, кто-нибудь.
|
рони,
у тебя слишком замучено для такой задачи. как-то так var a = [6, 7, 8, 14, 15, 16, 20, 21,6, 7, 8, 14, 15, 16, 20, 21], n = a.length, b = [], m = 0; for (var i = 0, t = a[i]; i < n; i++) { if (a[i]+1 == a[i+1]) continue; else { b[m++] = ((t == a[i]) ? '' : (t+' - ')) + a[i]; t = a[i+1]; } } alert(b); |
Demath,
ок совершенству нет предела |
Demath,
а чем b.push не устроил? |
рони,
привык без него |
Часовой пояс GMT +3, время: 07:30. |