У меня есть функция
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
Код часа работает нормально, но код месяца, похоже, не заканчивается.