| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
Rafa001 Aprendiz

Registrado: Quarta-Feira, 25 de Agosto de 2004 Mensagens: 167
|
Enviada: Ter Jun 21, 2005 9:54 am Assunto: Calculo de horas |
|
|
Galera eu estou tentando fazer um calculo de horas, mas só da errado... Me passaram esse código, mas quando eu mudo a hora ele da um resultado totalmente errado...
Eu testei por volta das 9h 45mim da manhã e ele me dava o resultado de 23:15:00...
[i]
Var
Hora1,Hora2, HoraTotal: TTime;
Total : String;
begin
//--Capituro Hora de agora e coloco na variavel Hora1
Hora1 := NOW;
//--Adiciono mais 30 minutos a hora atual a armazno valor em Hora2
Hora2 := StrToTime(\'10:00:00\');
//--Hora total armazena resultado da Hora2 - Hora1 = 30 Minutos
HoraTotal := Hora2 - Hora1 ;
edit1.Text := TimeToStr(Hora1);
edit2.Text := TimeToStr(Hora2);
edit3.Text := TimeToStr(HoraTotal); [/i]
Muito Obrigado _________________ <marquee> Só sei que nada sei... quero dizer, não sei... ah! Sei lá...</marquee> |
|
| Voltar ao Topo |
|
 |
lipeleite Novato

Registrado: Segunda-Feira, 30 de Mai de 2005 Mensagens: 34
|
Enviada: Ter Jun 21, 2005 10:38 am Assunto: Calculo de horas |
|
|
Você quer saber a diferença entre as duas datas?
Se for isso esse código está correto.. |
|
| Voltar ao Topo |
|
 |
Rafa001 Aprendiz

Registrado: Quarta-Feira, 25 de Agosto de 2004 Mensagens: 167
|
Enviada: Ter Jun 21, 2005 11:09 am Assunto: Calculo de horas |
|
|
Eu quero calcular as horas... mas com esse código da erro...
_________________ <marquee> Só sei que nada sei... quero dizer, não sei... ah! Sei lá...</marquee> |
|
| Voltar ao Topo |
|
 |
lipeleite Novato

Registrado: Segunda-Feira, 30 de Mai de 2005 Mensagens: 34
|
Enviada: Ter Jun 21, 2005 11:23 am Assunto: Calculo de horas |
|
|
Testeii o seu código
E fiz aki em Delphi 6 e funcionou...
Vc usa Deplhi 7 ? |
|
| Voltar ao Topo |
|
 |
Rafa001 Aprendiz

Registrado: Quarta-Feira, 25 de Agosto de 2004 Mensagens: 167
|
Enviada: Ter Jun 21, 2005 11:27 am Assunto: Calculo de horas |
|
|
isso mesmo eu uso o delphi 7... tem alguma diferença? _________________ <marquee> Só sei que nada sei... quero dizer, não sei... ah! Sei lá...</marquee> |
|
| Voltar ao Topo |
|
 |
gustavocco Administrador

Registrado: Sexta-Feira, 6 de Fevereiro de 2004 Mensagens: 4253 Localização: Chapecó - SC
|
Enviada: Ter Jun 21, 2005 11:35 am Assunto: Calculo de horas |
|
|
Tenta no lugar de :
Hora1 := NOW;
Hora1 := Time;
Verifica se o formato das horas do seu windows no painel d controle eh = HH:mm:ss
Deixe os 2 primeiros HH em maiusculos.
hh em minusculos corresponde dias de 12 hrs pm e 12 hrs am;
HH em minusculos corresponde dias de 24 hrs;
Flw ai...
[Editado em 21/6/2005 por gustavocco] _________________ Top System - www.topsystem.com.br |
|
| Voltar ao Topo |
|
 |
ridoval Novato

Registrado: Terça-Feira, 21 de Junho de 2005 Mensagens: 5
|
Enviada: Ter Jun 21, 2005 11:39 am Assunto: Calculo de horas |
|
|
Para que você efetue o cálculo que você está querendo, use o seguinte código:
ar
Hora1,Hora2, HoraTotal: TDateTime;
begin
//--Capituro Hora de agora e coloco na variavel Hora1, ao captura a hora inicial desde
//--modo Hora1 está recebendo tando a data como a hora, por isso a diferença no
//--cálculo.
Hora1 := NOW;
//--Adiciono a data e a hora atual a armazeno o valor em Hora2
Hora2 := StrToDateTime(\'21/06/2005 12:00:00\');
//--Hora total armazena resultado da Hora2 - Hora1
HoraTotal := (Hora2 - Hora1);
edit1.Text := TimeToStr(Hora1);
edit2.Text := TimeToStr(Hora2);
edit3.Text := FormatDateTime(\'hh:mm:ss\', Hora2 - Hora1);
end;
espero ter ajudado. |
|
| Voltar ao Topo |
|
 |
blackstile Novato

Registrado: Sábado, 11 de Junho de 2005 Mensagens: 55
|
Enviada: Ter Jun 21, 2005 1:40 pm Assunto: Calculo de horas |
|
|
Kara essa função que eu criei é perfeita, nao tem erro, eu criei essa função e ja testei ela num sistema de lan house e tem sido perfeita, ela mostra exatamente quanto faltam para determinada hora.
[b] Eu ja tentei os codigos acima quando criei essa função parecia perfeito, mas existe um bug nele, o problema é o seguinte nos no Brasil qdo sao meia noite o relogio vai para 00 horas entao imagine que a subtração fosse horaatual = 23:10:00 e horafinal = 00:10:00 já dá pra ver claramente o erro não ? horafinal - horaatual = 23:00:00 Errado teria que ser 01:00:00 [/b]
[b] [u] Veja que na função que eu criei eu verifico isso se a hora final é igual a \'00\' horas e se a hora final é menor que a hora atual pegando o exemplo acima hora final é menor do que a hora atual pro computador pra nós não pois sabemos que 00 horas equivale a 24 horas, entaum decodifico ela e verifico as variaveis que armazenam a hora.[/u][/b]
function TForm1.RestaHora(HoraAtual, HoraFinal: Ttime): string;
var
h1,h2,m1,m2,s1,s2,ms1,ms2:word;
Resta:tDatetime;
begin
decodeTime(HoraAtual,h1,m1,s1,ms1); [i] // desmembro a hora atual [/i]
decodeTime(HoraFinal,h2,m2,s2,ms2); [i] // desmembro a hora final em partes[/i]
resta:= horafinal - horaAtual; [i] // aqui acontece o BUG da diferença de horas[/i]
if (h2 < 1) or (h2
resta:=resta + strtotime(\'23:59:59\'); [i] // se ocorreu eu conserto o BUG [/i]
RestaHora:=timetostr(resta);
end;
[b] no ONTimer do componente timer eu chamo essa função no componente que irá mostrar no meu caso eu usei um label para exemplificar[/b]
procedure TForm1.Timer1Timer(Sender: TObject);
label1.Caption:=restahora(time,strtotime(\'19:00:00\'));
Beleza qualquer duvida estamos aí, é só postar _________________ Meu status no msn é: [img]http://www.bencastricum.nl/msn/status.php/e86a475c-0ffd-41de-a9b0-511476e2f794.png [/img]
Eu odeio policia - Quem é preto como eu já tá ligado qual é nota fiscal RG policia no pé - "Racionais MC's" |
|
| Voltar ao Topo |
|
 |
|