Ver Mensaje Individual
  #27  
Antiguo 11-09-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 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
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Incluso microsoft se equivocó en algunas versiones de excel con su función days360 y luego lo han modificado varias veces hasta dejarlo como está ahora.
Como verás Casimiro, equivocarse no es exclusividad de microsof, pero mía sí ...

Acabo de corregir un pif de la función que escribí. Lo dá cuando el día ingresado en la fecha inicial es 31, por suerte es fácil de corregir.

Queda así:
Código Delphi [-]
function Dias360(Des,Has: TDateTime): Integer;
begin
  if DayOf(Des) = 31 then Des:= IncDay(Des, -1); // Línea agregada
  if Abs(YearOf(Has)-YearOf(Des)) = 0 then
    Result:= 30-DayOf(Des)+
             (Abs(MonthOf(Des)-MonthOf(Has))-1)*30+DayOf(Has)
  else
  begin
    Result:= Abs(YearOf(Has)-YearOf(Des)-1)*360+
             360-MonthOf(Des)*30+30-DayOf(Des)+
             (MonthOf(Has)-1)*30+DayOf(Has)
  end
end;

Saludos.

Última edición por ecfisa fecha: 11-09-2010 a las 18:05:22.
Responder Con Cita