Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #6  
Antiguo 29-01-2019
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

En la sección Trucos el compañero MaMu puso un codigo para Calcular EDAD en años, meses y dias de una Persona.

Creo que con unas pocas modificaciones te serviría para el caso:
Código Delphi [-]
...
type
  TAntiguedad = record
    year : Word;
    month: Word;
    day  : Word;
  end;

function Antiguedad(Desde, Hasta: TDate): TAntiguedad;
var
  a1,m1,d1: Word;
  a2,m2,d2: Word;
  Year, Month, Day: Word;
begin
  DecodeDate(Desde, a1, m1, d1);
  DecodeDate(Hasta, a2, m2, d2);

  Year := a2 - a1;

  if ( m1 <= m2 ) then
     Month := m2 - m1
  else
  begin
    Month := m2 + 12 - m1;
    Dec(Year);
  end;

  if ( d1 <= d2 ) then
    Day := d2 - d1
  else
  begin
    Day := d2 + MonthDays[IsLeapYear(a2), m2] - d1;
    Dec(Month);
  end;

  if Month < 0 then
  begin
    Year := Year - 1;
    Inc(Month, 12);
  end;

  Result.year  := Year;
  Result.month := Month;
  Result.day   := Day;
end;

// Ejemplo de uso:
procedure TForm1.Button1Click(Sender: TObject);
var
  d1, d2: TDate;
  a: TAntiguedad;
begin
  d1 := StrToDate('01/01/2017');  
  d2 := StrToDate('02/04/2018'); 
  a  := Antiguedad(d1, d2);
  ShowMessageFmt('años:%d, meses:%d, días:%d',[a.year, a.month, a.day]); // (*)

  d1 := StrToDate('29/12/2005');
  a  := Antiguedad(d1, Date());
  ShowMessageFmt('años:%d, meses:%d, días:%d',[a.year, a.month, a.day]);
end;
(*) Fechas tomadas de tu primer mensaje y da como resultado: años: 1, meses: 3, días: 1

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
 



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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Antiguedad de saldos en sql 30,60,90, mas erasmorc SQL 4 18-06-2012 22:56:31
Problema laboral josejp1 La Taberna 14 04-07-2011 21:37:52
Consulta Por Antiguedad Jvilomar MS SQL Server 1 07-05-2008 15:17:28
Pedidos con un mes de antiguedad ¿¿¿cómo??? !!!!!!!! david_uh SQL 5 06-08-2007 05:54:30


La franja horaria es GMT +2. Ahora son las 00:40:26.


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