Cita:
Empezado por microbiano
...necesito determinar cuantos meses exisnten entre un rango de fechas para verificar cuantos meses se deben cobrar con recargo, pero que pasa si el usuario paga todo el año completo.
|
OK OK OK OK! Estás desesperado creo. Eso no es bueno. Tómalo con calma que nada es para tanto
La solución de tu problema va por "
volver a la mesa de dibujo o diseño", cómo quieras llamarle. Por lógica se deduce que si un cliente ya pago con antelación todo el año, él ni siquiera debería aparecer en la tabla de morosos. Si con los datos brindados por la DB no puedes deducir cuando un cliente ha pagado con antelación, pues creo que estás en un grave problema y necesitas revisar el diseño de tu sistema.
Con respecto a la diferencia de meses entre dos fechas, es un poco más complicado. A cómo se te ha mencionado, la función
MonthBetween no puede garantizar ser exacta. Por lo delicado del asunto, no puedes pasar por alto esa impresión de la función. Ahorita, con sueño y con ganas más de dormir que de otra cosa, sólo se me ocurre que deberías de adentrarte a tratar de construir un algoritmo adecuado específicamente para la circunstancia que te premia. Gracias a Dios que los desarrolladores de Delphi nos dejaron rutinas para saber en qué mes estamos, en que día del año también. Cuando estamos en un año bisiesto y así sucesivamente. Creo que una ensalada de estas funciones puede ayudarte a determinar con mayor precisión cuando un cliente ha cumplido uno o más meses de mora.
Saludos,
Chris