Eder Postado Junho 28, 2007 Denunciar Share Postado Junho 28, 2007 Ola...PessoalEstou num dilema.....preciso montar um aplicativo que conta horas, mas nem imagino como faz... :blush: Exemplo:data saida: 20/06/2007 as 20:00 horasdata chegada 25/06/2007 as 10:00 horasalguém poderia me ajudar??Grato Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Churc Postado Junho 28, 2007 Denunciar Share Postado Junho 28, 2007 OpaAdicione em uses DateUtils;Tem uma função que retorna o número de horas entre duas específicasHoursBetween();Deve se passar como parametro a hora inicial e a hora finalabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Eder Postado Junho 28, 2007 Autor Denunciar Share Postado Junho 28, 2007 Churc...bza?Carinha poderias colocar um exemplinho pratico aqui??parece que este negocio de calcular horas e meio embolado....tem o lance de chegar até a meia noite...vira a gora...em fim...se puderes colocar um exemplinho...agradeçovaleu :D Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --felipe -- Postado Junho 28, 2007 Denunciar Share Postado Junho 28, 2007 Churc...bza?Carinha poderias colocar um exemplinho pratico aqui??parece que este negocio de calcular horas e meio embolado....tem o lance de chegar até a meia noite...vira a gora...em fim...se puderes colocar um exemplinho...agradeçovaleu :Dprocedure TPrincipalForm.SpeedButton5Click(Sender: TObject); var s:variant; begin s:=HoursBetween(strtodatetime('01:08:08'),strtodatetime('03:08:08'));quanto a essa parte de depois que passa da meia noite, eu testei e o resultado vem errado mesmo,vo almoçar dpois eu tento arrumare posto aifalow ;D Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Junho 28, 2007 Denunciar Share Postado Junho 28, 2007 Sobre o assunto, há posts parecidos aqui no forum e que podem ajudar a entender melhor esse negócio de somar data/hora:- dá uma olhada deste post em diante.- para saber mais sobre o TDateTime, Pode dar uma olhada neste post também.Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Eder Postado Junho 29, 2007 Autor Denunciar Share Postado Junho 29, 2007 (editado) Dois amigos me ajudaram a montar o codigo ficando assim:procedure TForm1.EditHETotalEnter(Sender: TObject);VarInicio: TDateTime;Final: TDateTime;total, total2 : real;Dias: double;beginEditDataSaida.text := formatDateTime('dd/mm/yy',StrToDateTime(EditDataSaida.text));EditDataChegada.text := formatDateTime('dd/mm/yy',StrToDateTime(EditDataChegada.text));Inicio := StrToDate(EditDataSaida.Text) + StrToTime(EditHoraSaida.Text);Final := StrToDate(EditDataChegada.Text) + StrToTime(EditHoraChegada.Text);Dias := Final - Inicio;EditHETotal.Text := FormatDateTime('HH:MM', Frac(Dias)); //se colocar assim na formatação HH:MM:SS aparecerá assim: 10:00:00EditHETotal.Text := IntToStr(Trunc(Dias) * 24 + strtoint(copy(EditHETotal.text,1,2))) + copy(EditHETotal.text,3,3);end;deste total que aparece no EditHETotal eu precisaria saber qtos são DIURNAS E qtas são NOTURNAS....sendo que a NOTURNA compreende do horario de 22:00 as 05:00 do outro dia...o restante considera-se DIURNAS...Micheus..Tens alguma ideia??(este negocio de data e hora é pedreira...nunca me entendi com este negocio).Grato :( Editado Junho 29, 2007 por Eder Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Junho 29, 2007 Denunciar Share Postado Junho 29, 2007 Micheus..Tens alguma ideia??(este negocio de data e hora é pedreira...nunca me entendi com este negocio).Só vou poder ver isso pela madrugada. Enquanto isso, dá uma olha deste post (forum ActiveDelphi) que eu tinha visto por lá há algum tempo. Tem também um recente - tá incompleto, mas vai que dá para aproveitar algo.Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Eder Postado Junho 29, 2007 Autor Denunciar Share Postado Junho 29, 2007 MicheusCarinha..dei uma olhada neste tópicotópico e achei esta dica:procedure TForm1.Button1Click(Sender: TObject);varh,h1,h2,m,m2,m1,s,s1,s2,ms,ms1,ms2:word;inicio,fim:TTime;i,x,cont:smallint;begincont:=0;inicio:=strtotime(edit1.Text);fim:=strtotime(edit2.Text);decodeTime(inicio,h,m,s,ms); //desmembro a hora iniciodecodeTime(fim,h1,m1,s1,ms1); //desmembro a hora finalresta:=fim-inicio; //calculo a diferença entre as duasif (h1=0) or (h1<h) then resta:=resta+strtotime(\'23:59:59\')+strtotime(\'00:00:01\'); //corrigo bug se houverlabel3.Caption:=timetostr(resta); //resultado da subtraçãodecodeTime(resta,h2,m2,s2,ms2); //desmembro o resultado for i:=0 to h2 do //para i=0 até o numero de hora trabalhada(h2) begin x:=h+i; // x recebe hora inicio(h) +1if x > 24 then //se a soma for maior que 24 x:=x-24; //corrigo o bug pois o n° pode dar 25,30 etc... if x in[22,23,0..5]then //aqui verifico se a hora é adicional noturno cont:=cont+1end; if (h in[0..5]) then //correção de + um bug senão ira contar já a hora inicio cont:=cont-1; //** se começar em 0,1,2,3,4 não contar o a primeira hora label4.Caption:=inttostr(cont); //Eu ia me esquecendo cont representa a quantidade de hora adicional noturno que a pessoa trabalhoutentei compilar este codigo...mas deu erro nesta linha:parace que falta algo:resta:=fim-inicio; //calculo a diferença entre as duasda erro: [Error] Unit1.pas(39): Undeclared identifier: 'resta'parece uma variavel né?? :huh: Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Junho 29, 2007 Denunciar Share Postado Junho 29, 2007 resta:=fim-inicio; //calculo a diferença entre as duasda erro: [Error]Unit1.pas(39): Undeclared identifier: 'resta'parece uma variavel né??Exato. Talvez o cara tenha definido ela globalmente.Declara ela local como TDateTime (junto com as que já estão declaradas) e vê no que dá. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Eder Postado Junho 30, 2007 Autor Denunciar Share Postado Junho 30, 2007 Declara ela local como TDateTime (junto com as que já estão declaradas) e vê no que dá.R.: Carinha..fiz o que me disse....e ai ele funciona em partesaté encrementei tipo a Hora Diurna que seria a total - Noturna.(que não tinha no codigo)Porem o programa se perde por exemplo se eu escolher a hora inicial 22:00:00 e a final: 03:30:00 neste caso a noturna deveria dar 05:30 e a diurna nada.porem o resultado sai assim: noturna: 05:00Diurna: 00:30Parece que é quando a hora não é cheia...tipo 30 minutos, 40 minutos etc...ele se perdefoi o Bug que achei...pelo menos..só este.*também não consegui formatar a hora noturna no label.....ela esta como numero inteirosegue abaixo o codigo completo:procedure TForm1.Button1Click(Sender: TObject);varh,h1,h2,m,m2,m1,s,s1,s2,ms,ms1,ms2:word;inicio,fim:TTime;i,x,cont:smallint;Resta:TDateTime;noturna:real;begincont:=0;inicio:=strtotime(edit1.Text);fim:=strtotime(edit2.Text);decodeTime(inicio,h,m,s,ms); //desmembro a hora iniciodecodeTime(fim,h1,m1,s1,ms1); //desmembro a hora finalresta:=fim-inicio; //calculo a diferença entre as duasif (h1=0) or (h1<h) thenresta:=resta+strtotime('23:59:59')+strtotime('00:00:01'); //corrigo bug se houverlabel3.Caption:=timetostr(resta); //resultado da subtraçãodecodeTime(resta,h2,m2,s2,ms2); //desmembro o resultadofor i:=0 to h2 do //para i=0 até o numero de hora trabalhada(h2)beginx:=h+i; // x recebe hora inicio(h) +1if x > 24 then //se a soma for maior que 24x:=x-24; //corrigo o bug pois o n° pode dar 25,30 etc...if x in[22,23,0..5]then //aqui verifico se a hora é adicional noturnocont:=cont+1end;if (h in[0..5]) then //correção de + um bug senão ira contar já a hora iniciocont:=cont-1; //** se começar em 0,1,2,3,4 não contar o a primeira horalabel4.Caption:=inttostr(cont); //Eu ia me esquecendo cont representa a quantidade de hora adicional noturno que a pessoa trabalhounoturna:=StrToTime(label4.caption); //recebe a hora noturnalabel5.caption:=timetostr(Resta-noturna); //aqui é o total de horas Dirnas...ele pega o total de horas - a noturna...end;Poderias dar uma olhadinha??Valeu..Grato..... :) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Julho 1, 2007 Denunciar Share Postado Julho 1, 2007 Porem o programa se perde por exemplo se eu escolher a hora inicial 22:00:00 e a final: 03:30:00 neste caso a noturna deveria dar 05:30 e a diurna nada.porem o resultado sai assim: noturna: 05:00Diurna: 00:30Não estou podendo queimar muita pestana por agora (e nos próximos dias), então a dica é que este problema pode estar relacionado ao fato de que você não está levando em conta a data.Por ex., o sujeito bate o cartão: - Entrada 30/06/2007 23:35 - Saída 01/07/2007 08:40Bom, se eu não estiver errado, o ADN começa às 22:00 e encerra às 05:00. Se você leu os links que coloquei no post do dia 28/06/2007 - 16:10, vai entender que podemos somar a data e a hora para termos uma informação só:dtEntrada := StrToDate('30/06/2007'); hrEntrada := StrToTime('23:35'); dtSaida := StrToDate('01/07/2007'); hrSaida := StrToTime('08:40'); // total de horas trabalhadas qtHorasTrabalhadas := (dtSaida +hrSaida) -(dtEntrada +hrEntrada); // calculando total de horas noturnas (ADN) qtHoraADN := 0; if hrEntrada >= 22 then begin if qtHorasTrabalhadas > (24 -hrEntrada) then // significa que hora de saída é no outro dia begin qtHoraADN := (24 -hrEntrada); // até o final do dia - 24:00 if hrSaida >= 5 then // se o cara saiu depois das 5, recebe até ai qtHoraADN := qtHoraAdicional +5 else qtHoraADN := qtHoraADN +hrSaida; // o cara saiu antes das 5 end; end else // o cara poderá ter entrado após as 00:00 if hrEntrada < 5 then begin if hrSaida >= 5 then // se o cara saiu depois das 5, recebe até ai qtHoraADN := 5 -qtEntrada else qtHoraADN := hrSaida -hrEntrada; // o cara saiu antes das 5 end; acredito que lógica esteja clara e fazendo o cálculo correto. Veja se você consegue trabalhar com algo mais parecido com isto - parece-me um pouco mais claro (só não sei se as fórmulas estão corretas - não fiz nada com folha de pagamento) Parece que é quando a hora não é cheia...tipo 30 minutos, 40 minutos etc...ele se perde foi o Bug que achei...pelo menos..só este. *também não consegui formatar a hora noturna no label.....ela esta como numero inteiroserá que utilizando o esquema data/hora como coloquei, este problema não sumirá? Abraços p.s.: quando postar código, utilize a tag CODE e não QUOTE. Veja como fica mais legível:procedure TForm1.Button1Click(Sender: TObject); var h,h1,h2,m,m2,m1,s,s1,s2,ms,ms1,ms2:word; inicio,fim:TTime; i,x,cont:smallint; Resta:TDateTime; noturna:real; begin cont:=0; inicio:=strtotime(edit1.Text); fim:=strtotime(edit2.Text); decodeTime(inicio,h,m,s,ms); //desmembro a hora inicio decodeTime(fim,h1,m1,s1,ms1); //desmembro a hora final resta:=fim-inicio; //calculo a diferença entre as duas if (h1=0) or (h1<h) then resta:=resta+strtotime('23:59:59')+strtotime('00:00:01'); //corrigo bug se houver label3.Caption:=timetostr(resta); //resultado da subtração decodeTime(resta,h2,m2,s2,ms2); //desmembro o resultado for i:=0 to h2 do //para i=0 até o numero de hora trabalhada(h2) begin x:=h+i; // x recebe hora inicio(h) +1 if x > 24 then //se a soma for maior que 24 x:=x-24; //corrigo o bug pois o n° pode dar 25,30 etc... if x in[22,23,0..5]then //aqui verifico se a hora é adicional noturno cont:=cont+1 end; if (h in[0..5]) then //correção de + um bug senão ira contar já a hora inicio cont:=cont-1; //** se começar em 0,1,2,3,4 não contar o a primeira hora label4.Caption:=inttostr(cont); //Eu ia me esquecendo cont representa a quantidade de hora adicional noturno que a pessoa trabalhou noturna:=StrToTime(label4.caption); //recebe a hora noturna label5.caption:=timetostr(Resta-noturna); //aqui é o total de horas Dirnas...ele pega o total de horas - a noturna... end; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Eder Postado Julho 1, 2007 Autor Denunciar Share Postado Julho 1, 2007 Carinha....testei o seu codigo:procedure TForm1.Button2Click(Sender: TObject); Var DtEntrada, HrEntrada, DtSaida, HrSaida, QtHorasTrabalhadas, QtHoraADN, QtHoraAdicional, QtEntrada : TDateTime; begin dtEntrada := StrToDate('30/06/2007'); hrEntrada := StrToTime('21:00'); dtSaida := StrToDate('01/07/2007'); hrSaida := StrToTime('10:00'); // total de horas trabalhadas qtHorasTrabalhadas := (dtSaida + hrSaida) - (dtEntrada + hrEntrada); // calculando total de horas noturnas (ADN) qtHoraADN := 0; if hrEntrada >= 22 then begin if qtHorasTrabalhadas > (24 -hrEntrada) then // significa que hora de saída é no outro dia begin qtHoraADN := (24 -hrEntrada); // até o final do dia - 24:00 if hrSaida >= 5 then // se o cara saiu depois das 5, recebe até ai qtHoraADN := qtHoraAdicional +5 else qtHoraADN := qtHoraADN +hrSaida; // o cara saiu antes das 5 end; end else // o cara poderá ter entrado após as 00:00 if hrEntrada < 5 then begin if hrSaida >= 5 then // se o cara saiu depois das 5, recebe até ai qtHoraADN := 5 -qtEntrada else qtHoraADN := hrSaida -hrEntrada; // o cara saiu antes das 5 end; Label9.Caption:=timetostr(qtHorasTrabalhadas); //resultado horas trabalhadas Label10.Caption:=timetostr(qtHoraADN); //resultado horas noturnas label11.caption:=timetostr(QtHorasTrabalhadas - QtHoraAdn); //resultado horas Diurnas end;No final do codigo coloquei os labels pra receber os resultadosAs Horas Trabalhadas(label9) ta calculando certinho.As Horas Noturnas(label10) não ta calculando certoAs Horas restantes que são as dirnas(label11) que seria o (QrHorasTrabalhadas-QtHorasAdn)também não esta porque a noturna não calcula certo, mas se a noturna calcular certo ela vai calcular também.tentei com este exemplo de datas:dtEntrada := StrToDate('30/06/2007');hrEntrada := StrToTime('21:00');dtSaida := StrToDate('01/07/2007');hrSaida := StrToTime('06:00');total de horas:9noturnas:15Diurnas(restante):0se usar assim:dtEntrada := StrToDate('01/07/2007');hrEntrada := StrToTime('01:00');dtSaida := StrToDate('01/07/2007');hrSaida := StrToTime('07:00');total de horas:6noturnas:6Diurnas(restante):0Tentei mudar o seu codigo ....mas ai me perdi....porque é um monte de if´s e me enrrolei todo.Grato. :( Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Julho 2, 2007 Denunciar Share Postado Julho 2, 2007 É tinha alguns errinhos. :rolleyes: ADN = Adicional Noturno.procedure TForm1.Button1Click(Sender: TObject); const ADNInicio = (22 /24); // 22:00 ADNTermino = (5 /24); // 05:00 Var DtEntrada, HrEntrada, DtSaida, HrSaida, HrInicioADN, HrTerminoADN, QtHorasTrabalhadas, QtHoraADN : TDateTime; begin dtEntrada := StrToDate('30/06/2007'); hrEntrada := StrToTime('21:00'); dtSaida := StrToDate('01/07/2007'); hrSaida := StrToTime('10:00'); // total de horas trabalhadas qtHorasTrabalhadas := ((dtSaida + hrSaida) - (dtEntrada + hrEntrada)); // calculando total de horas noturnas (ADN) qtHoraADN := 0; if (ADNInicio >= hrEntrada) and ((hrEntrada +qtHorasTrabalhadas) > ADNInicio) then begin // período onde as 22:00 está dentro - calcula ADN (Adicional Noturno) // determinar hora de início do ADN if hrEntrada < ADNInicio then HrInicioADN := ADNInicio else HrInicioADN := hrEntrada; // determinar hora de término do ADN if hrSaida < hrEntrada then // significa saida APÓS as 24:00 do dia de entrada begin if hrSaida >= ADNTermino then // se o cara saiu depois das 5, recebe até ai HrTerminoADN := ADNTermino else HrTerminoADN := hrSaida; // o cara saiu antes das 5 end else // significa saída ANTES das 24:00 do dia da entrada HrTerminoADN := hrSaida; qtHoraADN := ((dtSaida + HrTerminoADN) - (dtEntrada + HrInicioADN)); end; Label1.Caption:=timetostr(qtHorasTrabalhadas); //resultado horas trabalhadas Label2.Caption:=timetostr(qtHoraADN); //resultado horas noturnas label3.caption:=timetostr(QtHorasTrabalhadas - QtHoraAdn); //resultado horas Diurnas end; tenta assim. Observe os comentários - acho que explicam tenho dúvida se esta linha será sempre válida para todas as situações (tem testar - verifique):qtHoraADN := ((dtSaida + HrTerminoADN) - (dtEntrada + HrInicioADN));o lance de dividir por 24, está associado ao que já mencionei (posts acima) sobre o formato do campo TDateTime - tenha isso em mente. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Eder Postado Julho 2, 2007 Autor Denunciar Share Postado Julho 2, 2007 Carinha.....testei de todas as formas....mas encontrei um probleminha...acredito que era isto que você se referia no final do post.o lance de dividir por 24, está associado ao que já mencionei (posts acima) sobre o formato do campo TDateTime - tenha isso em mente.quando for hora inicio maior que 22:00 tipo exemplo: entrada: 23:00saida: 06:00 o programa se perde, ele mostra assim:total de horas: 07:00Noturnas: 00:00Restante(diurnas):07:00deveria ser assim né?Total: 07:00Noturnas: 06:00Diurnas: 01:00haaaa.......eu acho que eu não tinha te explicado que estes calculos não são ponto de funcionarios especifico....são pra viagem de caminhoneiros....ou seja o cara sai num dia numa determinada hora e a viagem as vezes demora dias......ai o programa se perdi.....pois se ele sair no dia 30/06 as 08:00 e chegar dia 0107 as 08:00, as horas totais...deveria dar 24....e da zero..alias ele se perde totalmente....acho que é porque você fez pra analizar sempre dois dias, um antes e outro depois.Mas beleza........primeiro vou aprender assim...pra depois inovar.Valeu...muito Agradecido. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Julho 2, 2007 Denunciar Share Postado Julho 2, 2007 haaaa.......eu acho que eu não tinha te explicado que estes calculos não são ponto de funcionarios especifico....são pra viagem de caminhoneiros....ou seja o cara sai num dia numa determinada hora e a viagem as vezes demora dias......ai o programa se perdi.....pois se ele sair no dia 30/06 as 08:00 e chegar dia 0107 as 08:00, as horas totais...deveria dar 24....e da zero..alias ele se perde totalmente....acho que é porque você fez pra analizar sempre dois dias, um antes e outro depois.com certeza este era um ponto importante. Parti do princípio que o indivíduo não trabalharia mais que 24:00hs.Veja se você consegue adaptar, se não der avisa. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Eder Postado Julho 2, 2007 Autor Denunciar Share Postado Julho 2, 2007 com certeza este era um ponto importante. Parti do princípio que o indivíduo não trabalharia mais que 24:00hs.Veja se você consegue adaptar, se não der avisa.R.: Carinha...tentei hoje a tarde, mas não consegui, não sei se é porque mexo pouco com programação, pois quando é uma rotina um pouco grande para desenvolver a lógica... tenho muito dificuldade. Não é falta de vontade...tentar eu até tento...mas não deu..valeu...muito Grato. :( Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Eder Postado Julho 3, 2007 Autor Denunciar Share Postado Julho 3, 2007 Solução:segue unit completa pra quem vir a precisar:unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Mask, Buttons; type TForm1 = class(TForm) MaskEdit1: TMaskEdit; MaskEdit2: TMaskEdit; MaskEdit3: TMaskEdit; MaskEdit4: TMaskEdit; MaskEdit5: TMaskEdit; MaskEdit6: TMaskEdit; BitBtn1: TBitBtn; LabeL4: TLabel; Label1: TLabel; procedure BitBtn1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} function IncDay(const AValue: TDateTime; const ANumberOfDays: Integer = 1): TDateTime; begin Result := AValue + ANumberOfDays; end; function IncMinute(const AValue: TDateTime; const ANumberOfMinutes: Integer = 1): TDateTime; begin Result := ((AValue * 1440) + ANumberOfMinutes) / 1440; end; procedure TForm1.BitBtn1Click(Sender: TObject); var Inicio: TDateTime; Final: TDateTime; Dias: Double; // i: Integer; TimHora, recebe: TDateTime; StrFim: String; IntTotMin: Integer; StrHoraAtual: String; StrIniNoturno: String; StrFimNoturno: String; begin // não checa se as strings são datas ou horários válidos... // se não for, gera exceção if MaskEdit4.Text = '24:00' then begin MaskEdit4.Text:= '00:00'; MaskEdit3.Text:= datetostr(incday(strtodate(MaskEdit3.Text))); end; Inicio := StrToDate(MaskEdit1.Text) + StrToTime(MaskEdit2.Text); Final := StrToDate(MaskEdit3.Text) + StrToTime(MaskEdit4.Text); Dias := Final - Inicio; label4.caption:= formatdatetime('HH:MM:SS', Frac(Dias)); //label4.caption:= IntToStr(Trunc(Dias) * 24 + strtoint(copy(Label4.caption,1,2))) + copy(label4.caption,3,3); // TimHora:= Inicio; IntTotMin:= 0; StrFim:= ''; StrIniNoturno:= copy(maskedit5.text,1,2) + copy(maskedit5.text,4,2); StrFimNoturno:= copy(maskedit6.text,1,2) + copy(maskedit6.text,4,2); i:= 0; while strfim = '' do begin inc(i); if incminute(TimHora,i) > Final then begin strfim:= 'f'; end else begin incminute(TimHora,i); StrHoraAtual:= copy(datetimetostr(incminute(TimHora,i)),12,2) + copy(datetimetostr(incminute(TimHora,i)),15,2); if (StrHoraAtual > StrIniNoturno) or (StrHoraAtual <= StrFimNoturno) then begin inc(IntTotMin); end; end; end; strfim:= inttostr(IntTotMin div 60) + ':' + inttostr(IntTotMin mod 60); recebe := StrToTime(StrFim); // Label1.caption:= formatdatetime('HH:MM',(recebe)); end; procedure TForm1.FormCreate(Sender: TObject); begin shortdateformat:= 'dd/mm/yyyy'; end;Aquela função acima...é devido eu trabalhar com delphi 4 e o mesmo não possui a DateUtils, então a função substitui ela....agora pra quem tem a DateUtils não precisa da função ele funciona perfeito.Micheus Valeu a AJUDA...muito grato mesmoAbraço..t+ :D Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Eder
Ola...Pessoal
Estou num dilema.....preciso montar um aplicativo que conta horas, mas nem imagino como faz... :blush:
Exemplo:
alguém poderia me ajudar??
Grato
Link para o comentário
Compartilhar em outros sites
16 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.