Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-02-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 27
__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
  #2  
Antiguo 20-02-2004
maruenda maruenda is offline
Miembro
 
Registrado: oct 2003
Ubicación: elche
Posts: 173
Poder: 23
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
  #3  
Antiguo 21-02-2004
Avatar de DarkByte
DarkByte DarkByte is offline
Miembro
 
Registrado: sep 2003
Ubicación: Desconocido
Posts: 1.322
Poder: 24
DarkByte Va por buen camino
manrueda... yo intento poner mi granito de arena conforme a mis conocimientos (o capacidad de búsqueda de información), es verdad lo que dices, debería de dar la fecha completa, el caso es que no se :d
__________________
:)
Responder Con Cita
  #4  
Antiguo 21-02-2004
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 28
eduarcol Va por buen camino
Código:
 
function Edad(FecNac, FecAct: tDateTime): Integer;
var
   nAnoAct, nMesAct, nDiaAct: word;
   nAnoNac, nMesNac, nDiaNac: word;
   Edad: Integer;
begin
   //Calcula la edad en años
   //Desglosa la Fecha
   DecodeDate(FecNac, nAnoNac, nMesNac, nDiaNac);
   DecodeDate(FecAct, nAnoAct, nMesAct, nDiaAct);
   //Verifica una fecha
   if FecNac = 0 then
   begin
      Result := 0;
      Exit;
   end;
   //Edad en años
   Edad := nAnoAct - nAnoNac;
   //Calculo del mes
   if nMesAct = nMesNac then
   begin
      //Para el Dia
      if nDiaAct < nDiaNac then Edad := Edad - 1;
   end
   else if nMesAct < nMesNac then Edad := Edad - 1;
   //Devuelve el valor
   Result := Edad;
end;
para el qiue la necesite es unafuncion que devuelve la edad exacta en años tomando en cuenta hasta el dia.

FecNac: Fecha de Nacimiento
FecAct: Fecha Actual o fecha a la cual se quiere calcular la edad

Cualquier duda pregunten, esta funcion esta 100% operativa
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #5  
Antiguo 21-02-2004
maruenda maruenda is offline
Miembro
 
Registrado: oct 2003
Ubicación: elche
Posts: 173
Poder: 23
maruenda Va por buen camino
Cool sin animo de ofender

darkbyte, no tenia intencion de infravalorar tus conocimientos . Seguro que son superiores a los mios. solamente que anoche viendo esta pregunta se me ocurrio que podria tener esa pega. Que ademas es muy comun , no solo en programacion sino en cualquier ambito de la vida, cuando calculamos el tiempo transcurrido entre dos fechas. Solo di mi punto de vista. Espero no ofender a nadie. Aqui estamos para aprender y compartir conocimientos, ya que 4 ojos ven mas que 2. Son muchas las veces que alguien de este foro me ha ayudado con algun problema, o me ha aclarado alguno duda. un saludo.
__________________
frenadol
Responder Con Cita
  #6  
Antiguo 21-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
Me alegro de la aclaración hecha pues DarkByte es un asiduo coloborador del Club, por otra parte añadir que si restamos 2 fechas es decir dos variables del tipo Tdate, obtenemos días:
Código:
procedure TForm1.Button1Click(Sender: TObject);
var
dIni,dFin:Tdate;
nDias:Double;
begin
dIni:=Date - 10;
dFin:=Date;
nDias:=dFin - dIni;
ShowMessage(FormatFloat(',0.0000',n));
end;
En cuanto al ejemplo que propones, creo que habría que matizar, un bien adquirido el dia 20-08-1999 al día de hoy de 2004 no tendría 5 años y esto sería importante por ejemplo si pretendemos calcular la amortización del mismo.

Lo que propongo como solución sería restar los 2 fechas y dividirlas entre 365 si es que es posible es decir si el resultante fuera > 365

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
  #7  
Antiguo 21-02-2004
Ruben_Cu Ruben_Cu is offline
No confirmado
 
Registrado: oct 2003
Ubicación: Mariel, Cuba
Posts: 271
Poder: 0
Ruben_Cu Va por buen camino
Hola a todos, en este caso yo propondría utilizar una de las funciones que tenemos en los utilitarios de fechas (unit DateUtils), de forma general podemos usar el siguiente código:
Código:
procedure TForm1.Button1Click(Sender: TObject);
begin
        Label1.Caption:='Han transcurrido '+FloatToStr(YearSpan(date,ModeloDatos.TblMueble.FieldByName('Añocompra').AsDateTime)+ 'años';
end;
Por supuesto propongo un TLabel pero pudiera ser en mensaje como propuso Cadetill.
Esta función devuelve los años con fracciones y solventa el caso de periodos menores de uno vale para el asunto señalado por Marcos para amortizaciones.
Si se trabaja con otras funciones de este grupo se pudiera llegar a mostrar los años, meses y días transcurridos quedando mas elegante la presentación.
Saludos
Responder Con Cita
  #8  
Antiguo 21-02-2004
Avatar de DarkByte
DarkByte DarkByte is offline
Miembro
 
Registrado: sep 2003
Ubicación: Desconocido
Posts: 1.322
Poder: 24
DarkByte Va por buen camino
Cita:
Empezado por maruenda
darkbyte, no tenia intencion de infravalorar tus conocimientos .
Jeje, que yo sepa nunca lo has hecho, me alegra que me corrijan, pues así veo cuales de mis teorías son erróneas y me ayuda a mejorar, por lo tanto quedo agradecido a los que me corrijen. Aquí tienes tú y todos los del foro un amigo para cuando lo necesitéis
Cita:
Empezado por maruenda
Seguro que son superiores a los mios.
Eso lo dudo
Cita:
Empezado por maruenda
solamente que anoche viendo esta pregunta se me ocurrio que podria tener esa pega.
Has hecho lo correcto, pues para eso está el foro...
Cita:
Empezado por maruenda
Aqui estamos para aprender y compartir conocimientos, ya que 4 ojos ven mas que 2.
Pues claro!!, para eso está el foro!! , yo estoy aquí por lo mismo, aunque no puedo compartir mucho... pues no tengo el qué
Cita:
Empezado por maruenda
un saludo.
Otro para tí...
__________________
:)
Responder Con Cita
  #9  
Antiguo 24-02-2004
buitrago buitrago is offline
Miembro
 
Registrado: sep 2003
Posts: 156
Poder: 23
buitrago Va por buen camino
Aqui encontrarás unas Units que son una maravilla

http://fundementals.sourceforge.net/
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 20:24:32.


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