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

 
 
Herramientas Buscar en Tema Desplegado
  #3  
Antiguo 12-03-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 23
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
shoulder,

Cita:
Empezado por shoulder
...Encontré esta función de calculo de edad, que la adapte para el calculo de meses y días...si resto 24/02/2014 - 31/12/2014 me da 10 meses y 7 días pero esta mal son 5 días...¿Estoy equivocado?...
El valor que obtienes es correcto, del 24/02 al 24/12 hay 10 meses, del 24/12 al 31/12 hay 7 días.

Revisa este código:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    DateTimePicker1: TDateTimePicker;
    DateTimePicker2: TDateTimePicker;
    Button1: TButton;
    Label1: TLabel;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function CalculateLapseDate(FechaI, FechaF : TDateTime) : String;
var
   AAI, AAF, MMI, MMF, DDI, DDF: Word;
   AA, MM, DD: Integer;

begin

   DecodeDate(FechaI, AAI, MMI, DDI);
   DecodeDate(FechaF, AAF, MMF, DDF);

   AA := AAF - AAI;

   if( MMI <= MMF ) then
      MM := MMF - MMI
   else
   begin
      MM := MMF + 12 - MMI;
      AA := AA - 1;
   end;

   if( DDI <= DDF ) then
      DD := DDF - DDI
   else
   begin
      DD := DDF + MonthDays[IsLeapYear(AAF),MMF] - DDI;
      MM := MM - 1;
   end;

   if MM < 0 then
   begin
      AA := AA - 1;
      MM := 12 + MM;
   end;

   Result := Format('%.0d Años %.0d Meses y %.0d Dias', [AA, MM, DD]);

end;


procedure TForm1.Button1Click(Sender: TObject);
var
   FechaI, FechaF : TDateTime;
   Msg : String;
   AuxFechaI, AuxFechaF : String;

begin

   FechaI := DateTimePicker1.DateTime;
   FechaF := DateTimePicker2.DateTime;

   Msg := CalculateLapseDate(FechaI, FechaF);

   DateTimeToString(AuxFechaI,'yyyy/mm/dd',FechaI);
   DateTimeToString(AuxFechaF,'yyyy/mm/dd',FechaF);

   Msg := Format('Entre %s y %s han trancurrido: %s',
                 [AuxFechaI, AuxFechaF, Msg]);

   MessageDlg(Msg,mtInformation,[mbOK],0);

end;

end.
El código anterior permite calcular el rango de años, meses y días transcurridos desde una fecha inicial hasta una fecha final, como se muestra en la siguiente imagen:



Espero sea útil

Nelson.
Responder Con Cita
 


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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Calcular EDAD en años, meses y dias de una Persona MaMu Trucos 6 02-09-2013 23:57:24
Calcular numero de dias entre dos fechas vero Varios 22 31-05-2011 14:37:34
guardar y determinar días entre rango de fechas..!! kiozo Varios 11 20-06-2010 15:02:35
rpt. manager: meses y días transcurridos entre dos fechas dandia28 Impresión 1 20-02-2008 15:56:08
como calcular los dias entre fechas. carlos gonzalez Varios 2 27-08-2005 01:30:59


La franja horaria es GMT +2. Ahora son las 08:36: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