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-06-2012
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Hola.

Te respondo rápidamente, pues no he leído todas las respuestas a tu pregunta original. Pero creo que lo que buscas es esto:

Código Delphi [-]
uses DateUtils;

function MesesTranscurridos(const F1, F2: TDate): Integer;
begin
  Assert(F2>=F1, 'La fecha 2 debe ser mayor que la fecha 1');
  F1 := StartOfTheMonth(F1);
  F2 := EndOfTheMonth(F2) + 1;
  Result := MonthsBetween(F1, F2);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Caption := Format('Meses entre %s - %s = %d', [DateToStr(DateTimePicker1.Date)
    , DateToStr(DateTimePicker2.Date), MesesTranscurridos(DateTimePicker1.Date, DateTimePicker2.Date)]);
end;

El código lo he escrito aquí mismo y quizás haya algún error de sintaxis, eso te lo dejo a vos.

Un saludo.
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #2  
Antiguo 21-06-2012
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
Cita:
Empezado por jachguate Ver Mensaje
Hola.

Te respondo rápidamente, pues no he leído todas las respuestas a tu pregunta original. Pero creo que lo que buscas es esto:

Código Delphi [-]
uses DateUtils;  function MesesTranscurridos(F1, F2: TDate): Integer;
 begin
   Assert(F2>=F1, 'La fecha 2 debe ser mayor que la fecha 1');
   F1 := StartOfTheMonth(F1); 
  F2 := EndOfTheMonth(F2) + 1; 
  Result := MonthsBetween(F1, F2);
 end; 
 procedure TForm1.Button1Click(Sender: TObject);
 begin  
 Label1.Caption := Format('Meses entre %s - %s = %d', [DateToStr(DateTimePicker1.Date) ,
 DateToStr(DateTimePicker2.Date), MesesTranscurridos(DateTimePicker1.Date, DateTimePicker2.Date)]);
 end;
El código lo he escrito aquí mismo y quizás haya algún error de sintaxis, eso te lo dejo a vos.

Un saludo.
Hay que quitar la palabra const de la función MesesTranscurridos.

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: 21-06-2012 a las 21:55:10.
Responder Con Cita
  #3  
Antiguo 22-06-2012
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Mil gracias Marcos!!!

Igual, ahora que vi con más calma la (mal redactada) pregunta, creo que la solución iba un poco más allá:

Código Delphi [-]
uses DateUtils;

{$R *.dfm}

function MesesTranscurridos(F1, F2: TDate): Integer;
begin
  F1 := StartOfTheMonth(F1);
  F2 := EndOfTheMonth(F2) + 1;
  Result := MonthsBetween(F1, F2);
end;

procedure TForm2.Button1Click(Sender: TObject);
var
  Year: Word;
  F1, F2: TDate;
begin
  Memo1.Lines.Clear;
  for Year := YearOf(DateTimePicker1.Date) to YearOf(DateTimePicker2.Date) do
  begin
    if Year = YearOf(DateTimePicker1.Date) then
      F1 := DateTimePicker1.Date
    else
      F1 := EncodeDate(Year, 1, 1);
    if Year = YearOf(DateTimePicker2.Date) then
      F2 := DateTimePicker2.Date
    else
      F2 := EncodeDate(Year, 12, 31);
    Memo1.Lines.Add(Format('%s - %s: %d meses', [
        FormatDateTime('mmmm ''de'' yyyy', F1)
      , FormatDateTime('mmmm ''de'' yyyy', F2)
      , MesesTranscurridos(F1, F2)
      ]));
  end;
end;

El resultado es este:



Un saludo.

pd. Me pregunto donde está Tonatiuh? <---- favor no responder es una pregunta interna.
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ayuda con Rango de Fechas y meses microbiano Varios 2 06-06-2012 04:30:49
Ayuda para validar un Dato de Tipo Boleano en funcion microbiano Varios 3 05-05-2012 08:16:39
Ayuda con la función Right Javi2 SQL 5 27-12-2007 21:59:57
Funcion para sumar meses? patorecalde MS SQL Server 2 21-08-2007 20:24:17
Ayuda con una función McRight2k Varios 1 13-08-2003 21:47:04


La franja horaria es GMT +2. Ahora son las 06:35:27.


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