Visitante Postado Agosto 19, 2018 Denunciar Share Postado Agosto 19, 2018 Olá amigos, precisando de uma ajuda, um código para fazer uma subtração entre dois anos (somente o ano), o atual do sistema (sem ter de ser digitado)e outra variável digitado pela pessoa no Edit1, e mostrar a diferença no Label1 Supondo que seja 2018 o ano atual (do computador) e no Edit1 [ 1958 ] label1 = 60 Obrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Agosto 19, 2018 Denunciar Share Postado Agosto 19, 2018 Amigo, se voce digitar somente o ano no edit, basta fazer a conversão de string para numero e uma subtração e de depois converter novamente de numero para string procedure TForm1.Button1Click(Sender: TObject); begin // Edit1.Text = 2018 // Edit2.Text = 1958 // Edit3.Text = 60 Edit3.Text := inttostr(strtoint(Edit1.Text) - strtoint(Edit2.Text)); end; se quiser usar 2 componentes DateTimePicker uses DateUtils; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin // DateTimePicker1.Date = 19/ 8 /2018 // DateTimePicker2.Date = 18/ 8 /1958 // Edit1.Text = 60 Edit1.Text := FloatToStr(YearsBetween(DateTimePicker1.Date, DateTimePicker2.Date)); end; abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Visitante Postado Agosto 20, 2018 Denunciar Share Postado Agosto 20, 2018 Tudo bem Jhonas, obrigado pela sua ajuda, estava testando aqui usando a função NOW que pega a data do sistema e deu certo e tirei uma foto, só que não sei se vai dar problema na hora do programa copiar o ano se o computador da pessoa tiver usando outro formato (máscara) sem ser este dd/mm/aaaa tem como mudar este código pra ficar mais seguro , se for preciso procedure TForm1.Button1Click(Sender: TObject); var a:TDateTime; b:String; c:Integer; d:String; begin a:=now; //data atual dd/mm/aaaa do sistema b:= DateToStr(a) ; c:= StrToInt(copy (b, 6,4)); //aqui que acho que pode dar problema na hora de copiar se usar outra máscara d:= IntToStr(c - StrToInt(Edit1.Text)); //diferença entre o ano atual do computador e o ano digitado Label1.Caption:=DateToStr(a)+ ' data atual do sistema'; Label2.Caption:=(b)+ ' data atual do sistema convertido para string'; Label3.Caption:=IntToStr(c) +' Pegando somente o ano da string'; Label4.Caption:=(d); //diferença end; Obrigado e boa semana pra todos ai Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Agosto 20, 2018 Denunciar Share Postado Agosto 20, 2018 tem como mudar este código pra ficar mais seguro , se for preciso ? Tem varias maneiras ... estou colocando a mais simples, que é pegar somente o ano da data atual ( seja qual for o formato ) procedure TForm1.Button1Click(Sender: TObject); var a:integer; begin a:= YearOf(now()); //data atual dd/mm/aaaa do sistema a:= a - StrToInt(Edit1.Text); //diferença entre o ano atual do computador e o ano digitado Label1.Caption:= DateToStr(now)+ ' data atual do sistema'; Label2.Caption:= inttostr(a); //diferença end; abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Visitante Postado Agosto 21, 2018 Denunciar Share Postado Agosto 21, 2018 Jhonas, ficou muito bom mesmo só vou fazer um lembrete pros iniciantes que nem eu, que é necessário declarar no uses: DateUtils muito obrigado, a você e a todos amigos do fórum Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Visitante
Olá amigos, precisando de uma ajuda, um código para fazer uma subtração entre dois anos (somente o ano), o atual do sistema (sem ter de ser digitado)e outra variável digitado pela pessoa no Edit1, e mostrar a diferença no Label1
Supondo que seja 2018 o ano atual (do computador)
e no Edit1 [ 1958 ]
label1 = 60
Obrigado
Link para o comentário
Compartilhar em outros sites
4 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.