cálculo com datas em asp.net

07/06/2005

Alguém sabe como calcular o número de anos entre duas datas, similar ao que há no vcl, ie, YearsBetween, só que para aplicação asp.net do
Delphi ?


Respostas

10/06/2005

Sanses

Olá

A forma de fazer isso que vou postar aqui não é a mais correta. Acredito que tenha no .NET uma forma mais eficaz de se fazer isso. Mas como seu tópico já está ai a alguns dias, acho que vale a pena postar o pouco que sei:

Coloque 2 textbox no seu form e um button. Para o click do button digite:
var
  dias : string;
begin
  dias := (DateTime.Parse(textbox1.text)-DateTime.Parse(textbox2.Text)).tostring;
  label7.Text := System.&String.Format(´Número de dias: ´, System.&Object(dias));
end;


Como disse não é a melhor maneira, pois retorna o numero de dias acompanhado das horas, :cry: .

Mas vamos continuar estudando, quem sabe chegamos a função correta :lol:

Sanses


Responder Citar

10/06/2005

Sanses

Olá, veja esta outra forma:

Esta, retorna em um inteiro o numero total de dias entre duas datas.

var
  data : timespan;
begin
  data := DateTime.Parse(textbox1.text)-DateTime.Parse(textbox2.Text);
  label7.text := ´Número total de dias: ´+data.Days.tostring;
end;


[]´s
Sanses


Responder Citar

10/06/2005

N1

Sanses,

Obrigado pela dica. Acabei achando outra forma:

em IMPLEMENTATION acrescentei:

uses Borland.Vcl.DateUtils;

acrescentei 2 textboxes , 1 button e 1 label:

No evento Onclick do button:

procedure TWebForm1.Button1_Click(sender: System.Object; e: System.EventArgs);
var
anos:Integer;
begin
anos:=YearsBetween(Convert.ToDateTime(TextBox1.Text),convert.ToDateTime(TextBox2.Text));
lblResultado.Text:=anos.ToString;
end;

Fica do ´jeito´ do Delphi 7



Obrigado


Responder Citar

11/06/2005

Sanses

Olá

Legal, mas dá na mesma, pois esta função retorna somente os anos, e no se caso a diferença de data for de 11 meses ele retorna 0. Do modo que eu coloquei, ele retorna o número total de dias e ai fical fácil, estrair os anos e meses. Mas é isso ai...

Sanses


Responder Citar

11/06/2005

Sanses

ah, já ia me esquecendo, usando componentes do .net, vc ganha em tamanho dos assemblys gerados. Ao incluir esta unit no no uses, meu assembly saltou de 117k para 495k.

Sanses


Responder Citar