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-11-2017
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.806
Poder: 23
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Con fuerza bruta he hecho esto...
Código Delphi [-]
// Log(s : string) imprime [TimeStamp] + s

procedure TFMPruebas.TButtDaysBetweenClick(Sender: TObject);
var
   F1, F2 : TDateTime;

   function Dias29FebreroEntreFechas(ANow, AThen: TDateTime) : integer;
   var
     aYear, aMonth, aDay: Word;
     T : TDateTime;
   begin
      Result := 0;

      // Invierto si es necesario
      if (ANow > AThen) then
      begin
         T := AThen;
         AThen := ANow;
         ANow := T;
      end;

      // Recorro todos los dias entre las dos fechas y cuento los 29/2.
      while (ANow < AThen) do
      begin
         DecodeDate(ANow, aYear, aMonth, aDay);
         if ((aMonth = 2) and (aDay = 29)) then
            inc(Result);
         ANow := IncDay(ANow);
      end;
   end;

begin
  F1 := EncodeDate(2017, 11, 29);
  F2 := EncodeDate(2020, 11, 29);
  Log(Format('DaysBetween(%s, %s) = %d (- %d) = %d', [DateToStr(F2), DateToStr(F1), DaysBetween(F2, F1), Dias29FebreroEntreFechas(F2, F1), DaysBetween(F2, F1) - Dias29FebreroEntreFechas(F2, F1)]));

  F1 := EncodeDate(2017, 11, 29);
  F2 := EncodeDate(2020, 02, 28);
  Log(Format('DaysBetween(%s, %s) = %d (- %d) = %d', [DateToStr(F2), DateToStr(F1), DaysBetween(F2, F1), Dias29FebreroEntreFechas(F2, F1), DaysBetween(F2, F1) - Dias29FebreroEntreFechas(F2, F1)]));

  F1 := EncodeDate(2020, 01, 01);
  F2 := EncodeDate(2020, 02, 28);
  Log(Format('DaysBetween(%s, %s) = %d (- %d) = %d', [DateToStr(F2), DateToStr(F1), DaysBetween(F2, F1), Dias29FebreroEntreFechas(F2, F1), DaysBetween(F2, F1) - Dias29FebreroEntreFechas(F2, F1)]));

  F1 := EncodeDate(2020, 01, 01);
  F2 := EncodeDate(2020, 03, 01);
  Log(Format('DaysBetween(%s, %s) = %d (- %d) = %d', [DateToStr(F2), DateToStr(F1), DaysBetween(F2, F1), Dias29FebreroEntreFechas(F2, F1), DaysBetween(F2, F1) - Dias29FebreroEntreFechas(F2, F1)]));
end;
Código Delphi [-]
[2017-11-29 17:08:23.591] DaysBetween(29/11/2020, 29/11/2017) = 1096 (- 1) = 1095
[2017-11-29 17:08:23.591] DaysBetween(28/02/2020, 29/11/2017) = 821 (- 0) = 821
[2017-11-29 17:08:23.591] DaysBetween(28/02/2020, 01/01/2020) = 58 (- 0) = 58
[2017-11-29 17:08:23.591] DaysBetween(01/03/2020, 01/01/2020) = 60 (- 1) = 59
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
Problema calcular meses , dias entre rango de fechas shoulder Varios 3 12-03-2014 20:34:50
Calcular numero de dias entre dos fechas vero Varios 22 31-05-2011 14:37:34
Días entre de dos fechas ? lucasarts_18 HTML, Javascript y otros 1 26-07-2007 22:49:53
como calcular los dias entre fechas. carlos gonzalez Varios 2 27-08-2005 01:30:59
dias entre dos fechas davidgaldo Varios 5 19-05-2005 21:02:03


La franja horaria es GMT +2. Ahora son las 11:40:06.


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