Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

crilufe

calcular diferença de data e hora

Recommended Posts

Olá pessoal....Seguinte ... estou precisando montar uma função em Javascript que tire a diferença entre data e hora ... tudo isso tirando de textbox que o próprio usuário irá digitar ...e depois ... esse numero de horas vai ser multiplicado pelo valor da hora e o numero de dias multiplicado pelo valor de cada dia ... por exemplo...data inicio: 10:00data pausa: 13:00data continuação: 14:30data final: 18:00resultado: (10:00 - 13:00) + (14:30 - 18:00)alguém aí pode me dar uma forcinha? ou pelo menos uma dica?valew

Compartilhar este post


Link para o post
Compartilhar em outros sites

hammmm, o usuário, chega a digitar as datas, certo?intaum faça assim, conforme o usuário vai digitando você armazena em variáveis, assim:onKeyUp=this.value = variavelai no onSubmit do form você faz uma funçaum q regasta as variaveis e faz suas contas, axo q é por ai q você deve começar!ajudei seu problema?

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao gente ... desculpa.. é que na correria aqui eu esqueci de mencionar que eu coloquei um botao pra fazer o calculo...e as horas e minutos estao em textbox distintos... eu tenho 8 textbox (hora e minuto)o negocio tá pegando pra mim, na hora do calculo ... to me confundindo um pouco...vou tentando aqui conforme a resposta de vcs, e vou avisando assim que as coisas forem saindo ... até pra outras pessoas verem...brigadao... :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

eh facil kra, vamos dizer q as variaveis tb1, tb2, tb3... sejam relativas as suas textbox (acredito que seria 1 pra hora, 1 pra minuto, hora, minuto... e assim respectivamente)entao você faria o seguinte:var tempo1 = tb1 * 60 + tb2; //hora multiplica por 60 e soma minutos, assim temos o tempo apenas em minutosvar tempo2 = tb3 * 60 + tb4;var tempo3 = tb5 * 60 + tb6;var tempo4 = tb7 * 60 + tb8;var tempoTotal = (tempo2 - tempo1) + (tempo4 - tempo3);pronto, soh isso, na variavel tempoTotal você tem tudo em minutos, ainda vo facilita sua vida, pra separar esse tempoTotal em minutos e segundos eh soh fazer o seguinte:var horasTotal = Math.floor(tempoTotal / 60);var minutosTotal = tempoTotal % 60;prontinho, eh soh isso mano ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Wilker... você me mostrou a luz no fim do túnel ... confesso que eu tava meio confusa aqui ... tem pouco tempo que eu trabalho com isso ... e aqui no meu trabalho, o povo num me ajuda muito ... entao tenho que correr pra cá...Pktiago... assim que eu terminar eu coloco aqui,. pode deixar...e só uma coisa... :) eu sou menina tá... beleza cara? rsrsbrigadao de nvo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entao... to quase acabando ... só que quando eu fui testar acabei descobrindo um "bugzinho" no negocio...

a função tá fazendo mais ou menos o seguinte.. por exemplo... num intervalo de 11:00hs à 12:50hs há 1:50hs ... até aí tudo bem no segundo intervalo ele interpreta que entre 15:30hs e 16:20hs há 50minutos...

mas ao inves da função na hora da soma dar o resultado = 2:40hs... ele tá registrando um resultado de 2:00hs... ele soma normal... sem a condição de que uma hora nao tem mais que 60 minutos... vcs podem me ajudar a consertar? aí o código:

 

 

function calculahora(){var horainicio = parseInt(document.form.txthorainicio.value);var minutoinicio = parseInt(document.form.txtmininicio.value);var horapausa = parseInt(document.form.txthorapausa.value);var minutopausa = parseInt(document.form.txtminutopausa.value);var horacontinuacao = parseInt(document.form.txthoracont.value);var minutocontinuacao = parseInt(document.form.txtmincont.value);var horafinal = parseInt(document.form.txthorafinal.value);var minutofinal = parseInt(document.form.txtminfinal.value);horainicio = horainicio * 60 + minutoinicio;horapausa = horapausa * 60 + minutopausa;horacontinuacao = horacontinuacao * 60 + minutocontinuacao;horafinal = horafinal * 60 + minutofinal;if (horapausa < horainicio){alert("A hora de pausa deve ser maior que a hora inicial!");document.form.txthorapausa.focus();document.form.txthorapausa.select();}elseif (horafinal < horacontinuacao){alert("Você deve preencher os campos com horas válidas!");document.form.txthorafinal.focus();document.form.txthorafinal.select();}elseif (horafinal < horainicio){alert("A hora final não pode ser menor que a hora inicial.");document.form.txthorafinal.focus();document.form.txthorafinal.select();}var vlhora = parseInt(document.form.txthora.value);vlhora = (horapausa - horainicio) + (horafinal - horacontinuacao);var hora = Math.floor(vlhora / 60);var minuto = vlhora % 60;if (minuto = "0") {minuto = minuto + "0";}document.form.txthora.value = hora + ":" + minuto;}

desde já , vlw :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Descobri a bobagem que eu fiz.. na tentativa de deixar a coisa mais bonita esteticamente.. coloquei um if lá embaixo , pra acrescentar um zero, quando nao tiver minutos... fazendo o if errado ele mata o numero verdadeiro... deeeeeerrrrrr... rsrs.. desculpa aí...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.