Array
(
)

cálculo com datas em asp.net

N1
   - 07 jun 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 ?


Sanses
   - 10 jun 2005

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:
#Código


var
dias : string;
begin
dias := (DateTime.Parse(textbox1.text)-DateTime.Parse(textbox2.Text)).tostring;
label7.Text := System.&String.Format(´Número de dias: {0}´, System.&Object(dias));
end;


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

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

Sanses


Sanses
   - 10 jun 2005

Olá, veja esta outra forma:

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

#Código


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


N1
   - 10 jun 2005

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


Sanses
   - 11 jun 2005

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


Sanses
   - 11 jun 2005

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