Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-02-2004
jrcosta75 jrcosta75 is offline
Miembro
 
Registrado: feb 2004
Ubicación: Argentina
Posts: 13
Poder: 0
jrcosta75 Va por buen camino
Calculo de Años

Necesito calcular los anos transcurridos entre el año de compra de una producto el cual lo introdusco a una tabla mediante un dbedit, y la fecha actual que posee la computador.
Ejemplo:
AÑo de compra: 1999
Año actual : 2004
Resultado: 5
Precisaria que si se puede me pasen todo el codigo completo del calculo. Desde ya muchas gracias.
Aclaración: trabajo en Delphi 5 entreprice y con tablas paradox 7
__________________
Cita:
El servir es mejor que el recibir
Responder Con Cita
  #2  
Antiguo 20-02-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Me suena que hay una función, pero como no tengo el Delphi delante....

Código:
var
  D, M, AIni, AFin : Word;
begin
  DecodeDate(AFin, M, D, Date);
  DecodeDate(AIni, M, D, TablaCampoFecha.AsDateTime);
  ShowMessage('Diferencia de años : ' + IntToStr(AFin - AIni));
end;
PD: Frases como esta
Cita:
Empezado por jrcosta75
Precisaria que si se puede me pasen todo el codigo completo del calculo
no suelen gustar. Así que te aconsejo no ponerlas. Aquí se ayuda, pero no se trabaja para nadie

Última edición por __cadetill fecha: 20-02-2004 a las 14:30:01.
Responder Con Cita
  #3  
Antiguo 20-02-2004
jrcosta75 jrcosta75 is offline
Miembro
 
Registrado: feb 2004
Ubicación: Argentina
Posts: 13
Poder: 0
jrcosta75 Va por buen camino
Talking Calculo de anio

CADETILL UTILICE EL SIGUIENTE CODIGO :

procedure TModeloDatos.TblMuebleCalcFields(DataSet: TDataSet);
Var

D, M, AIni, AFin : Word;
Begin
DecodeDate(AFin, M, D, Date);
AIni:=ModeloDatos.TblMueble.FieldValues['Añocompra'];
ShowMessage('Diferencia de años : ' + IntToStr(AFin - AIni));
end;



PARA CALCULAR LOS ANOS TRANSCURRIDOS ENTRE EL AÑO DE COMPRA DE UN PRODUCTO Y EL ACTUAL Y ME DA EL SIGUIENTE ERROR:

[Error] ModDat.pas(104): Types of actual and formal var parameters must be identical
[Fatal Error] CStock.dpr(15): Could not compile used unit 'ModDat.pas'


Y NO SE COMO ARREGLARLO
Saludos, jrcosta75
__________________
Cita:
El servir es mejor que el recibir
Responder Con Cita
  #4  
Antiguo 20-02-2004
Avatar de DarkByte
DarkByte DarkByte is offline
Miembro
 
Registrado: sep 2003
Ubicación: Desconocido
Posts: 1.322
Poder: 22
DarkByte Va por buen camino
Código:
procedure TForm1.Button1Click(Sender: TObject);
 
  function Edad(FechaNacimiento:string):integer;
  var 
     iTemp,iTemp2,Nada:word;
     Fecha:TDate;
  begin 
    Fecha:=StrToDate(FechaNacimiento);
    DecodeDate(Date,itemp,Nada,Nada);
    DecodeDate(Fecha,itemp2,Nada,Nada);
     if FormatDateTime('mmdd',Date) <
        FormatDateTime('mmdd',Fecha) then Result:=iTemp-iTemp2-1
                                     else Result:=iTemp-iTemp2;
  end; 
 
begin 
  Label1.Caption:=intToStr(Edad('07/09/1969'));
end;
Te da la edad en años. Ese procedure está en el truco 628 de trucomanía
__________________
:)
Responder Con Cita
  #5  
Antiguo 20-02-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
se supone que

Código:
ModeloDatos.TblMueble.FieldValues['Añocompra']
es de tipo DateTime, no?
Pues entonces has de hacer lo que te proponia en el mensaje anterior

Código:
var
  D, M, AIni, AFin : Word;
begin
  DecodeDate(AFin, M, D, Date);
  DecodeDate(AIni, M, D, ModeloDatos.TblMueble.FieldValues['Añocompra']);
  ShowMessage('Diferencia de años : ' + IntToStr(AFin - AIni));
end;
Responder Con Cita
  #6  
Antiguo 20-02-2004
maruenda maruenda is offline
Miembro
 
Registrado: oct 2003
Ubicación: elche
Posts: 173
Poder: 21
maruenda Va por buen camino
Thumbs down pregunta

que ocurre si compro algo el 31/12/03 y lo vendo el 01/01/04. ?
que resultado debe dar? deberia dar 0 años. no? creo que no habria querestar solo los años, sino tener en cuenta toda la fecha.
__________________
frenadol
Responder Con Cita
  #7  
Antiguo 24-02-2004
jrcosta75 jrcosta75 is offline
Miembro
 
Registrado: feb 2004
Ubicación: Argentina
Posts: 13
Poder: 0
jrcosta75 Va por buen camino
Talking Ayudaaaaa.

Probe de todas formas para calcular los anos transcurridos y no hay forma me da error

PUSE:

procedure TForm10.BitBtn1Click(Sender: TObject);
Var
d,m,Aini,Afin:Word;
begin
Decodedate(Date,Afin,m,d,);
Decodedate(ModeloDatos.TblMueble.FieldValues['Fechcomp'],Aini,m,d,);
ShowMessage('Diferencia de años:'+IntToStr(Afin-Aini));
end;

Y ME DIO EL SIGUIENTE ERROR

[Error] Unit10.pas(105): Too many actual parameters
[Error] Unit10.pas(106): Too many actual parameters
[Fatal Error] CStock.dpr(15): Could not compile used unit 'Unit10.pas'

TAMBIEN PUSE:

procedure TForm10.BitBtn1Click(Sender: TObject);
Var
d,m,Aini,Afin:Word;
begin
Decodedate(Afin,m,d,Date);
Decodedate(Aini,m,d,ModeloDatos.TblMueble.FieldValues['Fechcomp']);
ShowMessage('Diferencia de años:'+IntToStr(Afin-Aini));

end;

Y ME DIO EL SIGUIENTE ERROR

[Error] Unit10.pas(105): Types of actual and formal var parameters must be identical
[Error] Unit10.pas(106): Types of actual and formal var parameters must be identical
[Fatal Error] CStock.dpr(15): Could not compile used unit 'Unit10.pas'

NO SE COMO HACERLO NECESITO AYUDA
GRACIAS.
__________________
Cita:
El servir es mejor que el recibir
Responder Con Cita
  #8  
Antiguo 24-02-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Con solo darle a F1 verás que la sintaxis correcta es la primera. Para que te funcione, prueba a no poner paréntesis de más.

Código:
procedure TForm10.BitBtn1Click(Sender: TObject);
Var d,m,Aini,Afin:Word;
begin
  Decodedate(Date,Afin,m,d);
  Decodedate(ModeloDatos.TblMueble.FieldValues['Fechcomp'],Aini,m,d);
  ShowMessage('Diferencia de años:'+IntToStr(Afin-Aini));
end;
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #9  
Antiguo 24-02-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Código:
procedure TForm10.BitBtn1Click(Sender: TObject);
Var
d,m,Aini,Afin:Word;
begin
Decodedate(Date,Afin,m,d,);//La coma sobra
Decodedate(ModeloDatos.TblMueble.FieldValues['Fechcomp'],Aini,m,d,);
ShowMessage('Diferencia de años:'+IntToStr(Afin-Aini));
end;
Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.

Última edición por marcoszorrilla fecha: 24-02-2004 a las 22:16:59.
Responder Con Cita
  #10  
Antiguo 24-02-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
donde dije paréntesis de más, digo diego, digo quise decir comas de más.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #11  
Antiguo 24-02-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Escribimos casi al mismo tiempo Marc, cuando he enviado mi mensaje aún no estaba el tuyo.

Donde dije Diego no digo nada.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 21:35:02.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi