![]() |
calculos con fechas
hola y saludos a todos.
en esta ocacion me gustaria que me ayudaran a resolver 2 problemitas, jeje. 1: es que me gustaria saber como es puedo sumar las fechas, o realizar un calculo, es decir: suponiendo que la fecha actual es 26/10/82 como puedo referirme a una fecha de 4 mese depues, o 30 dias despues, o un año mas etc. espero ser algo claro esto lo nececito para obtener una fecha limite de pago en mi tarea. es decir para decir que si un cliente tomo un prestamo hoy x dia su limite de pago sera en 1 mes exacto despues de dicha fecha, para poder ponerle un recargo. 2: lo segundo es que quiero saber porque cuando hago una conversion de fecha con decodedate, para obtener la fecha en formato de numeros, cuando ago un calculo con los meses es decir si el mes actual esta entre 1 al 9 me depliega un mensage. esto va bien, pero cuando digo si esta entre 10 y 12 no me reconoce estos meses porque despues de 9 vuelve a 0. como puedo resolver esto. espero con ansia sus repuestas y que me hallan podido entender . garcias de antemano y les salu2 nuevamente.:):) |
Cita:
Una solucion es que los prestamos realizados entre el 29 al 31 sean llevados al dia 28 o al dia 1 del proximo mes. Asi no tendrias problemas. Con respecto a sumar las fechas tienes : IncDay(fecha) para sumar 1 dia IncMounth(...) para sumar 1 mes IncYear(...) Sumar 1 Año. |
Saludos
Cita:
|
Dependiendo de cómo aborde la cuestion, puede ser muy sencillo el tema.
Como sabemos una fecha es un Flotante, la parte entera indica los días transcurridos desde el inicio del calendario (01/01/1900) y la parte fraccionaria es la hora transcurrida desde media noche. Si a una fecha le sumamos un número entero, estamos sumando días, y no importa si el mes tiene 28 ó 31 días; la fecha resultante será una fecha válida. Lo principal es entender la forma que quiere el cliente, me explico, si quiere sumar 1 mes a la fecha... pues vale, pero: ¿cuantos días se debe sumar? (Enero 31 días, Febrero 28 días, Marzo 30) ¿Cuantos días se debe sumar realmente? Las rutinas: IncDay IncMonth IncYear simplemente suma la cantidad que se le pase por parámetro y garantiza que el resultado será una fecha válida, pero ¿realmente es lo que necesita tu cliente? Ejemplo: Desde el 15/01/2000 hasta el 15/02/2000 no van los mismos días de préstamo que desde el 15/02/2000 hasta el 15/03/2000 porque puede ser bisiesto, porque el mes tiene 28 días, etc. Si no recuerdo mal, estan las rutinas DaysInYear DaysInAYear etc. (mira la unidad DateUtils entera, tiene muy buenas rutinas) Pasando todo a días y sumando jamás tendrás problemas. Saludos |
gracias a los dos por las rutinas de para poder sumar la fechas esto me servira para mi tarea. es justo lo que estaba buscando gracias.:p
en cuanto a la segunda parte perdon por no haber mostrado el codigo lo pense justo despues que envie la pregunta y ya no tube mas tiempo para mostrarlo, pero aki le muestro a ver si me entienden: en las dos primeras condiciones todo funciona bien, pero cuando el mes supera el numero 9 me parece que toma el valor de 0 (cero) y vuelve a contar desde 1 en ves de 10,11,12 que serian octubre,nov,dic. por lo que no obtengo los resultados a partir del mes 10. espero entiendan esto. gracias de nuevo. |
Hola Jheysson13, el problema es sencillo. Estas comparando texto y no números, cuando tu comparas:
si fecha2.caption vale '10' la comparación devuelve FALSE porque la cadena de texto '10' es menor que la cadena de texto '8', ya que cuando se compara texto se realiza carácter a carácter, es decir es mayor el que tiene el primer carácter mayor. |
oooooooooooooooooooooooooooooo, pero que error mas bobo y no lo pude ver. gracias amigo y disculpa mi ignorancia. gracias de nuevo y salu2 :D :D
|
Cita:
Cita:
Jheysson13, edita tu mensaje y chequea como he puesto tu codigo. Veras que tiene unas etiquetas que resaltan el codigo. Seria bueno que estudiaras como se utilizan las etiquetas para delphi, sql y demas... en mi firma puedes encontrar los enlaces. |
jejej tienes razon con la forma que explicas lo que estaba buscando sobre obtener la fecha cuadrando a 28 dias el mes. gracias por ello.
por otra parte me causo gracia ver el codigo que habia puesto para mostrar las conversiones de fechas. jejeje por un momento pense que se edito solo el codigo en delphi hasta que lei mas abajo tu recomendaciones gracias nuevamente y lo tomare en cuenta. Jheysson13, edita tu mensaje y chequea como he puesto tu codigo. Veras que tiene unas etiquetas que resaltan el codigo. Seria bueno que estudiaras como se utilizan las etiquetas para delphi, sql y demas... en mi firma puedes encontrar los enlaces. |
Bien ;)
Saludos |
La franja horaria es GMT +2. Ahora son las 12:25:03. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi