Pessoal Boa Tarde
Desculpem fazer esse tipo de pergunta pelo GUJ , porem na empresa não tenho acesso a outros forúns para fazer perguntas sobre javaScript
Tenho uma função que cálcula a diferença de dias entre 2 datas em java Script.
Até ai tudo bem o problema é que este função para um dia específico da um erro no claculo informa um dia a mais.
A função não da um valor float que poderia ter sido arredondado para mais ou para menos ela da um valor exato para qualquer caso.
O dia que eu tenho o problema é 01/12/2011
Eu calculo a diferenca entre 17/08/2011 e 30/11/2011 e da 13 dias (OK Resusltado correto)
Se calcular a diferenca entre 17/08/2011 e 01/12/2011 (um dia a mais) o js me retorna 15 dias.
Alguem sabe o porque.
já tentei fazer parse para int diminuir sem pegar o get time e para todos os casos no dia 01/12/2011 me retorna diferença de 15 dias.
Segue o código
function calculaAtraso(){
if(document.forms[0].DataPagto != null){
if(document.forms[0].DataPagto.length > 1){
for (var i=0; i<document.forms[0].DataPagto.length; i++) {
if(document.forms[0].DataPagto[i].value!=""){
valor = document.forms[0].DataVcto[i].value
campos=valor.split("/")
firstdate =new Date(campos[2],campos[1],campos[0])
valor = document.forms[0].DataPagto[i].value
campos=valor.split("/")
seconddate =new Date(campos[2],campos[1],campos[0])
msPerDay = 24 * 60 * 60 * 1000 // Number of milliseconds per day
difference = seconddate.getTime() - firstdate.getTime()
dbd= Math.floor((seconddate-firstdate)/ msPerDay)
document.forms[0].Atraso[i].value=dbd.toString()
}
}
}
else{
if(document.forms[0].DataPagto.value!=""){
valor = document.forms[0].DataVcto.value
campos=valor.split("/")
firstdate = new Date(campos[2],campos[1],campos[0])
valor = document.forms[0].DataPagto.value
campos=valor.split("/")
seconddate = new Date(campos[2],campos[1],campos[0])
msPerDay = 24 * 60 * 60 * 1000 // Number of milliseconds per day
difference = seconddate.getTime() - firstdate.getTime()
dbd= Math.floor((seconddate-firstdate)/ msPerDay)
document.forms[0].Atraso.value=dbd.toString()
}
}
}
}