Fórum Somar anos meses e dias #442663
11/05/2013
0
tempo uma aplicação de contagem de tempo de serviço na minha empresa com os seguinte codigos:
o codigo completo é esse?
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Mask, ExtCtrls, jpeg;
type
TForm1 = class(TForm)
MaskEdit1: TMaskEdit;
MaskEdit2: TMaskEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Label1: TLabel;
BitBtn3: TBitBtn;
Label2: TLabel;
Label3: TLabel;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.BitBtn1Click(Sender: TObject);
Var
Ano, Mes, Dia, Ano1, Mes1, Dia1, Ano2, Mes2, Dia2 : Word;
Data1, Data2 :TdateTime;
Resultado : String;
begin
If StrToDate(MaskEdit1.Text) < StrToDate(MaskEdit2.Text) then
begin
Data1 := StrToDate(MaskEdit1.Text);
Data2 := StrToDate(MaskEdit2.Text);
end
else
begin
Data1 := StrToDate(MaskEdit2.Text);
Data2 := StrToDate(MaskEdit1.Text);
Resultado := 'Falta ';
end;
DecodeDate(Data1, Ano1, Mes1, Dia1);
DecodeDate(Data2, Ano2, Mes2, Dia2);
if Dia2 >= Dia1 Then
begin
Dia := Dia2 - Dia1;
end
else
begin
If Mes2 = 1 then
begin
Dia := Dia2 + 31 - Dia1;
Mes2 := Mes2 - 1;
Ano2 := Ano2 - 1;
end
else
begin
If Mes2 = 3 then
begin
Dia := Dia2 + 28 - Dia1;
Mes2 := Mes2 - 1;
end
else
begin
If (Mes2 = 5) or (Mes2 = 7) or (Mes2 = 10) or (Mes2 = 12) then
begin
Dia := Dia2 + 30 - Dia1;
Mes2 := Mes2 - 1;
end
else
begin
Dia := Dia2 + 31 - Dia1;
Mes2 := Mes2 - 1;
end;
end;
end;
end;
If Mes2 >= Mes1 then
begin
Mes := Mes2 - Mes1;
end
else
begin
Mes := Mes2 + 12 - Mes1;
Ano2 := Ano2 - 1;
end;
If Ano2 >= Ano1 then
begin
Ano := Ano2 - Ano1;
end
else
begin
Ano := 0;
end;
If Ano < 2 then
Resultado := Resultado + IntToStr(Ano) + ' Ano, '
else
Resultado := Resultado + IntToStr(Ano) + ' Anos, ';
If Mes < 2 then
Resultado := Resultado + IntToStr(Mes) + ' Mes, '
else
Resultado := Resultado + IntToStr(Mes) + ' Meses, ';
If Dia < 2 then
Resultado := Resultado + IntToStr(Dia) + ' Dia.'
else
Resultado := Resultado + IntToStr(Dia) + ' Dias.';
Label1.Caption :=(Resultado);
Label1.Visible :=true;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
Label1.Visible :=false;
MaskEdit1.Clear;
MaskEdit2.Clear;
MaskEdit1.SetFocus;
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
MaskEdit1.SetFocus;
end;
end.
mais estou precisando de incrementar no sistema a soma de alguns tempo averbados de outras empresas.
como eu faço para somar ao resultado do tempo de serviço na minha empresa os tempos de serviços vindos de outras empresas;
por exemplo o João tem 05 anos 04 meses e 03 dias na minha empresa, agora estou precisando averbar 02 anos 04 meses e 10 dias de outra empresa, como faço essa soma no sistema?
o codigo completo é esse?
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Mask, ExtCtrls, jpeg;
type
TForm1 = class(TForm)
MaskEdit1: TMaskEdit;
MaskEdit2: TMaskEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Label1: TLabel;
BitBtn3: TBitBtn;
Label2: TLabel;
Label3: TLabel;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.BitBtn1Click(Sender: TObject);
Var
Ano, Mes, Dia, Ano1, Mes1, Dia1, Ano2, Mes2, Dia2 : Word;
Data1, Data2 :TdateTime;
Resultado : String;
begin
If StrToDate(MaskEdit1.Text) < StrToDate(MaskEdit2.Text) then
begin
Data1 := StrToDate(MaskEdit1.Text);
Data2 := StrToDate(MaskEdit2.Text);
end
else
begin
Data1 := StrToDate(MaskEdit2.Text);
Data2 := StrToDate(MaskEdit1.Text);
Resultado := 'Falta ';
end;
DecodeDate(Data1, Ano1, Mes1, Dia1);
DecodeDate(Data2, Ano2, Mes2, Dia2);
if Dia2 >= Dia1 Then
begin
Dia := Dia2 - Dia1;
end
else
begin
If Mes2 = 1 then
begin
Dia := Dia2 + 31 - Dia1;
Mes2 := Mes2 - 1;
Ano2 := Ano2 - 1;
end
else
begin
If Mes2 = 3 then
begin
Dia := Dia2 + 28 - Dia1;
Mes2 := Mes2 - 1;
end
else
begin
If (Mes2 = 5) or (Mes2 = 7) or (Mes2 = 10) or (Mes2 = 12) then
begin
Dia := Dia2 + 30 - Dia1;
Mes2 := Mes2 - 1;
end
else
begin
Dia := Dia2 + 31 - Dia1;
Mes2 := Mes2 - 1;
end;
end;
end;
end;
If Mes2 >= Mes1 then
begin
Mes := Mes2 - Mes1;
end
else
begin
Mes := Mes2 + 12 - Mes1;
Ano2 := Ano2 - 1;
end;
If Ano2 >= Ano1 then
begin
Ano := Ano2 - Ano1;
end
else
begin
Ano := 0;
end;
If Ano < 2 then
Resultado := Resultado + IntToStr(Ano) + ' Ano, '
else
Resultado := Resultado + IntToStr(Ano) + ' Anos, ';
If Mes < 2 then
Resultado := Resultado + IntToStr(Mes) + ' Mes, '
else
Resultado := Resultado + IntToStr(Mes) + ' Meses, ';
If Dia < 2 then
Resultado := Resultado + IntToStr(Dia) + ' Dia.'
else
Resultado := Resultado + IntToStr(Dia) + ' Dias.';
Label1.Caption :=(Resultado);
Label1.Visible :=true;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
Label1.Visible :=false;
MaskEdit1.Clear;
MaskEdit2.Clear;
MaskEdit1.SetFocus;
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
MaskEdit1.SetFocus;
end;
end.
mais estou precisando de incrementar no sistema a soma de alguns tempo averbados de outras empresas.
como eu faço para somar ao resultado do tempo de serviço na minha empresa os tempos de serviços vindos de outras empresas;
por exemplo o João tem 05 anos 04 meses e 03 dias na minha empresa, agora estou precisando averbar 02 anos 04 meses e 10 dias de outra empresa, como faço essa soma no sistema?
Paulo
Curtir tópico
+ 0
Responder
Posts
13/05/2013
Leonardo Xavier
Veja se é mais ou menos isso que você queria.
http://www.4shared.com/rar/e_xboa8n/calculoanos.html?
http://www.4shared.com/rar/e_xboa8n/calculoanos.html?
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)