![]() |
Una Duda sobre campos de fechas
Hola Amigos, necesito saber como realizar lo siguiente:
Estoy haaciendo una aplicacion para controlas pagos mensuales de un comercio. De esta manera me interesa cargar una tabla de pagos con, entre otros campos uno: FechaInicio, y otro FechaVence del periodo vigente para pagar. cuando se carga un nuevo periodo de pago, tengo que asignar la fecha actual a FechaInicio (en esto no hay problema). Mi duda surge en cuanto a como hacer para asignar la misma fecha, pero del mes siguiente para el campo FechaVence, ya que el periodo es de un mes. Y ademas como controlar en caso de que me encuantre en el ultimo dia del mes y el mes siguiente no tenga la misma cantidad de dias que el presente. trabajo en delphi 6 y con base de datos paradox 7. Desde ya, gracias... Saludos. |
Hola ale_metall, para eso tienes que sumar la fecha actual mas los dias que hacen al mes siguiente que son 30 dias(o quizas 31), puedes hacerlo de varias formas via consulta SQL:
o mejor:
espero que te ayude. Saludos. |
Hola
enecumene te ha dado una opcion muy interesante (como se aprende en el club, ya es un maestro). Ahora lo que se plantea es muy especifico, recuerda que hay meses de 28, 29, 30 y 31, como definir tantas opciones. Para mi lo logico es que el usuario defina las fechas y para ese fin existe el DateTimePicker, para que inventar lo que ya existe y funciona. Solo opino. Saludos |
No sé si estamos hablando a nivel de sentencia SQL o a nivel de código Delphi ?
En Delphi tienes la función IncMonth dentro de la unit SysUtils ;) |
Si necesitas que los pagos se hagan en el mismo día lo mejor es modificar únicamente el mes sin tocar los días (vigilando el año).
|
Ten en cuenta que no es lo mismo un mes, que 30 días, que el mismo día del mes siguiente.
Después te aconsejo lo hagas por código delphi ya que será más cómodo para tí. La unidad DateUtils de delphi tiene todas las rutinas que necesitas para incrementar días y meses (IncDays, IncMonth) recodificar fechas (RecodeDate, RecodeDateTime), tener en cuenta el día de la semana (DayofWeek, DayofTheWeek) etc. Saludos |
O usar IncMonth(fecha) que hace exactamente lo mismo... Si es que a veces ni me acuerdo de revisar la ayuda antes de ponerme a teclear.
|
Cita:
... y me atrevo incluso a rectificar a Lepe, indicando de nuevo que IncMonth está dentro de la unit SysUtils (... al menos en BDS 2006 :o ). Por supuesto sin desmerecer en absoluto todas las demás funciones de gestión de fechas que aparecen en la unit DateUtils, que no son pocas, y que a buen seguro ayudarán a nuestro amigo. :rolleyes: El problema que puedes tener con DecodeDate y EncodeData tal y como menciona kuian-yiu es que al mantener el mismo día pero cambiar el mes, resulte (p.ej. 31.09.2007), una fecha que no existe y te dará error. Sería cuestión de implementar tu propia lógica con este método para obtener el resultado deseado. |
gracais amigos, use las funciones d la unit SysUtils, no las conocia.. y me fueron de gran utilidad!!!
agradecido desde ya!! Saludos |
La franja horaria es GMT +2. Ahora son las 04:34:59. |
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