Этот код убивает страницу - PullRequest
0 голосов
/ 19 декабря 2011

У меня есть функция

makeMarks: (first, nextIncrement, classifier) ->
    results = new Array()

    t = first(@minT)
    while t<=@maxT
        mark = 
            t: t
            x: this.tToX(t)
            class: classifier(t)

        results.push(mark)

        t = nextIncrement(t)

    results

эта функция прекрасно работает со следующими двумя функциями в качестве параметров

# parameters for hour tickmarks
@firstHour = (t) ->
    msPerHour = 1000*60*60
    Math.floor(t / msPerHour) * msPerHour

@nextHour = (currentHour) ->
    msPerHour = 1000*60*60
    currentHour + msPerHour

при вызове таким образом

marks = markMaker.makeMarks( @firstMonth, @nextMonth, @classifier)

Теперьк проблеме:

# parameters for month tickmarks
@firstMonth = (minT) ->
msPerDay = 1000*60*60*24
t = Math.floor(minT/msPerDay) * msPerDay
d = new Date(t)
while(d.getDate() isnt 0)
        t += msPerDay
        d.setTime(t)
t

@nextMonth = (currentMonth) ->
msPerDay = 1000*60*60*24
t = currentMonth + msPerDay
d = new Date(t)
while(d.getDate() isnt 0)
        t += msPerDay
        d.setTime(t)
t

Код часа работает нормально, но код месяца, похоже, не заканчивается.

1 Ответ

2 голосов
/ 19 декабря 2011

Функция getDate никогда не возвращает 0. Ее минимальное значение равно 1, а максимальное - 31. Если вы ищете что-либо за пределами этого диапазона, это долгое ожидание поезда, который не приходит.

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