Ver Mensaje Individual
  #1  
Antiguo 13-02-2006
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Reputación: 26
vtdeleon Va por buen camino
Thumbs down MonthBetweens - Dudar del Resultado

Saludos

He estado desarrollando una aplicacion en la que uso las funciones MonthBetween, YearsBetween y WeeksBetween.

El ultimo no da problema alguno, pues sea como sea sera un multiplo de 7, a diferencia de las 2 primeras.

Y es que este mes (Feb) solo tiene 28 dias, y mediante el sistema he querido saber cuantos meses hay entre el 12/02/06 y el 13/04/06. Me he quedado anodado con la respuesta, pues me dice que solo tiene 1 mes.

He fundido por completo mi cerebro buscando donde demonios esta el error en mi codigo. Buscando y buscando, horas y horas sin pestañar, me he encontrado con la sorpresa de que no es mi codigo, sino el codigo de Delphi, pues este hace el calculo por un aproximado.
DateUtils
Código Delphi [-]
var
  {BDS2006}
  { average over a 4 year span }
  ApproxDaysPerMonth: Double = 30.4375;
  ApproxDaysPerYear: Double  = 365.25;
Estoy sorprendido con esto. No existe exactitud usando las funciones mencionadas mas arriba!

Esto quiere decir que desde el 12 de feb 2006 al 13 de marz 2006 no hay un mes para Delphi.

Por que no usar DaysInMonth y DaysInYears?, y no hacer esos aproximados tan feo, tan barbaros. Aunque seria un poquito mas largo el codigo interno, pero YO arriesgaria espacio por exactitud.

A consecuencia de esto, he decido hacer mi propia funcion para hacer esto, pues ahora no confio en lo absoluto en estas funciones. Y quien sabe que otras funciones no son exactas.
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita