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

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-11-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
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
Dias360()

Hace aproximadamente un mes un compañero solicitó el código para calcular Dias360 tál como lo hace Excel u OpenOffice.
En ese momento realizé un código que funcionaba sólo con el método NASD, pero no contemplaba el método europeo.

Pongo a disposición el código que contempla ambos métodos:
Código Delphi [-]
function Dias360(FechaIni,FechaFin: TDate; NASD:Boolean): Integer;
var
  ai,mi,di,
  af,mf,df: Word;
begin
  DecodeDate(FechaIni, ai, mi, di);
  DecodeDate(FechaFin, af, mf, df);
  if NASD then // EEUU
  begin
    if (di = 31) or ((mi = 2)and(di > 27)) then di:= 30;
    if (df > 27)and(mf = 2) then df:= 30; 
    if (df = 31)and(di < 30) then
    begin
      Inc(mf);
      df:= 1;
    end
    else if df = 31 then
     df:= 30
  end
  else       // EUROPEO
  begin
    if (di = 31) or ((mi = 2)and(di > 27)) then di:= 30;
    if (df = 31) or ((mf = 2)and(df > 27)) then df:= 30;
  end;
  if Abs(af - ai) = 0 then
    Result:= (mf-mi)*30 + df-di
  else
    Result:= Abs(af-ai-1)*360 + 360-mi*30 + 30-di + 30*(mf-1) + df
end;

Un ejemplo de llamada:
Código Delphi [-]
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
   Panel1.Caption:=IntToStr(Dias360(dtPicker1.Date, dtPicker2.Date,
                          not Boolean(ComboBox1.ItemIndex)));
end;

Espero les sea de utilidad.


Saludos.

Última edición por ecfisa fecha: 11-02-2011 a las 15:19:25.
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


La franja horaria es GMT +2. Ahora son las 06:14:29.


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