Página 1 de 2
Calculo de horas
Enviado: 02 Set 2007 20:14
por rubens
Gente..
eu já vi este tópico aqui no fórum... mas pesquisei e nao me retorna nada com calculo de horas.. na realidade retorna, mas retorna todos os tópicos.. bom o que preciso é o seguinte...
Preciso calcular o tempo corrido da hora em que um onibus saiu e da hora que chegou...
HoraSai := Time() // "08:20:10"
HoraRet := Time() // "08:40:00"
Tempo := HoraRet - HoraSai
Tempo = "08:20

40:00"
Alguem sabe como fazer

Enviado: 02 Set 2007 21:24
por sygecom
Olá,
Código: Selecionar todos
nInicio := timetosec(time())
nFim := timetosec(time())
nTempo=sectotime(nFim-nInicio)
Abraços
Leonardo Machado
Enviado: 03 Set 2007 07:31
por Eolo
Rubens, o que vc procura está em
https://pctoledo.org/forum/viewto ... =intervalo
Nessa minha função, vc pode até calcular o tempo entre horas de dias diferentes...
Enviado: 03 Set 2007 07:55
por miracle
Você também pode tentar assim:
Código: Selecionar todos
nHORAINI = SECS(cHORAINI) //CONVERTE HORAS EM SEGUNDOS
nHORAFIM = SECS(cHORAFIM)
nHORATOT = nHORAFIM - nHORAINI //FAZ SUBTRACAO DOS SEGUNDOS
cHORATOT = TSTRING(nHORATOT) //CONVERTE SEGUNDOS EM HORAS
Sendo as funções SECS() E TSTRING()
Código: Selecionar todos
* CONVERTE HORAS EM SEGUNDOS
FUNCTION Secs
PARAMETERS cl_time
RETURN VAL( cl_time ) * 3600 +;
VAL(SUBSTR(cl_time,4)) * 60
* CONVERTE SEGUNDOS EM HORAS
FUNCTION Tstring
PARAMETERS cl_secs
RETURN StrZero(INT(Mod(cl_secs/3600, 24)), 2, 0) + ":" +;
StrZero(INT(Mod(cl_secs/ 60, 60)), 2, 0)
Espero ter ajudado :|<
Enviado: 03 Set 2007 08:24
por rubens
Leonardo...
onde encontro estas funcoes:
TIMETOSEC()
SECTOTIME()
Rubens
Enviado: 03 Set 2007 08:29
por Maligno
CATools.
Enviado: 03 Set 2007 12:49
por diogenes_varela
Simplifica a coisa:
inicio = TIME()
final = TIME()
tempo = ELAPTIME(inicio,final)
Enviado: 03 Set 2007 13:14
por rubens
Fechou....
Resolveu da forma mais simples possível..
Valeu...
obrigado
Rubens
Enviado: 03 Set 2007 21:07
por Eolo
Resolveu da forma mais simples possível..
Rubens, se deu certo, beleza!
Mas, fica a ressalva (ou sugestão): nem sempre a "forma mais simples possível é a melhor". É como o Fulano que faz tudo MONO-usuário, pq avalia que é a forma mais simples e imagina que o cliente nunca vai querer aquilo em rede...
Mas aí um dia o cliente pede (pq era necessário) e aí o Fulano se ferra.
Essas "armadilhas" são comuns!
Enviado: 03 Set 2007 21:46
por diogenes_varela
Eolo escreveu:
Essas "armadilhas" são comuns!
Não entendi... O cara queria um controle simples, o comando é simples...
rubens escreveu:
Preciso calcular o tempo corrido da hora em que um onibus saiu e da hora que chegou...
Você gosta de ajudar, colabora bastante, mas quando a coisa é simples, comandos simples....
Enviado: 03 Set 2007 22:14
por Eolo
Não entendi... Você gosta de ajudar, colabora bastante, mas quando a coisa é simples, comandos simples....
Vamos ao caso concreto: a demanda é calcular tempo entre duas horas, certo? Fácil! É só pegar as duas horas e calcular o intervalo, certo? O que poderia dar errado nisso? Respondo: "E eu sei lá!..."
E, exatamente por não saber e por querer ir dormir tranquilo, eu afirmo: "hoje, é só calcular o intervalo entre dois horários no mesmo dia mas, de repente, o cliente aparece com dias diferentes, blablabla..., sei lá por que razões". Então, por que não SIMPLESmente matar a coisa num tiro só? Com o meu exemplo, nunca mais se pensa em manutenção do sistema... Quer mais simples que isso?
(é o exemplo que dei da REDE. Uai, se o cliente, hoje, não tem rede, pra quê fazer em rede??? Mas e se três meses depois o cliente sugere "Então, tava pensando em colocar um outro computador no escritório...", como fica?)
Enviado: 04 Set 2007 09:22
por diogenes_varela
De certa forma você está corretíssimo. Quando digo de certa forma é porque não dá pra fazer um sistema completo prevendo que um dia ele vá ser usado em rede, até porque há tantas "previsões" a fazer que o programa jamais ficaria pronto.
Concordo com a forma de matar o assunto da forma mais completa, só que às vezes - e isso acontece até comigo que já fuço o clipper há alguns muitos anos - o conhecimento do cidadão não é tão amplo mesmo nos comandos simples, o que gera mais dúvidas.
É apenas uma preocupação minha analisar "pela pergunta" quanto o cidadão tem de conhecimento, para uma resposta mais proveitosa no momento. Se hover mais dúvidas, novas perguntas virão.
É claro que você tem demonstrado que não há problema nenhum em dirimi-las, o que é louvável de sua parte.
Vamos em frente!
Enviado: 04 Set 2007 11:49
por Maligno
Acho que pela natureza do problema apresentado pelo Rubens, realmente não seria o caso de ter algo tão completo. Trata-se de horário escolar. Um aluno não vai entrar num dia e sair em outro. Portanto, a lógica do mais simples torna melhor a solução mais simples. De qualquer forma, acho uma boa idéia "recortar" o código do Eolo pra guardar numa LIB, pra uma outra ocasião.

Enviado: 04 Set 2007 12:37
por diogenes_varela
acho uma boa idéia "recortar" o código do Eolo pra guardar numa LIB, pra uma outra ocasião.
Você como sempre genial nas soluções...
Enviado: 04 Set 2007 12:51
por Eolo
Diógenes e Maligno, talvez eu tenha me expressado mal.
Eu disse:
(a) Rubens, se deu certo, beleza!
(b) Mas, fica a ressalva (ou sugestão): nem sempre a "forma mais simples possível é a melhor". É como...
Eu não quis dizer que o Rubens estava errado nem que seria melhor ele usar uma função mais abrangente. Eu disse:
(a) pro Rubens usar a solução simples que resolveu o problema, mas
(b) que atentasse para o cuidado a tomar com soluções "simples", genericamente falando, que via de regra representam armadilhas futuras pra gente mesmo...
Mas talvez eu tenha me expressado mal, talvez devesse ter explicado melhor o meu ponto de vista.
O caso de Rede x Mono é perfeito como exemplo: programar para Mono é muito mais simples, mas representa sim um problema real 'empurrado' pro futuro... Ao contrário, programar para Rede dá trabalho, mas se vc adotar isso como padrão, todos os seus programa vão funcionar tanto em Rede como em Mono, então esse problema vc risca permanentemente da lista e sua vida fica mais 'simples'... Este é o meu ponto!
