ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Calculo de horas

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
Rafa001
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 25 de Agosto de 2004
Mensagens: 167

MensagemEnviada: Ter Jun 21, 2005 9:54 am    Assunto: Calculo de horas Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
lipeleite
Novato
Novato


Registrado: Segunda-Feira, 30 de Mai de 2005
Mensagens: 34

MensagemEnviada: Ter Jun 21, 2005 10:38 am    Assunto: Calculo de horas Responder com Citação

Você quer saber a diferença entre as duas datas?
Se for isso esse código está correto..
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Rafa001
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 25 de Agosto de 2004
Mensagens: 167

MensagemEnviada: Ter Jun 21, 2005 11:09 am    Assunto: Calculo de horas Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
lipeleite
Novato
Novato


Registrado: Segunda-Feira, 30 de Mai de 2005
Mensagens: 34

MensagemEnviada: Ter Jun 21, 2005 11:23 am    Assunto: Calculo de horas Responder com Citação

Testeii o seu código
E fiz aki em Delphi 6 e funcionou...
Vc usa Deplhi 7 ?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Rafa001
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 25 de Agosto de 2004
Mensagens: 167

MensagemEnviada: Ter Jun 21, 2005 11:27 am    Assunto: Calculo de horas Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
gustavocco
Administrador
Administrador


Registrado: Sexta-Feira, 6 de Fevereiro de 2004
Mensagens: 4253
Localização: Chapecó - SC

MensagemEnviada: Ter Jun 21, 2005 11:35 am    Assunto: Calculo de horas Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
ridoval
Novato
Novato


Registrado: Terça-Feira, 21 de Junho de 2005
Mensagens: 5

MensagemEnviada: Ter Jun 21, 2005 11:39 am    Assunto: Calculo de horas Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
blackstile
Novato
Novato


Registrado: Sábado, 11 de Junho de 2005
Mensagens: 55

MensagemEnviada: Ter Jun 21, 2005 1:40 pm    Assunto: Calculo de horas Responder com Citação

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 Sad Errado teria que ser 01:00:00 Wink [/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
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB