Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-10-2007
ale_metall ale_metall is offline
Miembro
 
Registrado: sep 2007
Posts: 53
Poder: 17
ale_metall Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 18-10-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
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:

Código SQL [-]
SELECT DATE_ADD(CURDATE(), INTERVAL 30 DAY);

o mejor:

Código SQL [-]
SELECT DATE_FORMAT(DATE_ADD(CURDATE(),INTERVAL 30 DAY) ,’%d/%m/%Y');

espero que te ayude.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #3  
Antiguo 18-10-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
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
Responder Con Cita
  #4  
Antiguo 18-10-2007
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
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
__________________
Piensa siempre en positivo !
Responder Con Cita
  #5  
Antiguo 18-10-2007
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
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).

Código Delphi [-]
DecodeDate(fecha, dia, mes, anho);
if mes<12 then
  mes := mes+1
else
begin
  mes := 1;
  anho:= anho+1;
end;
fecha := EncodeDate(dia, mes, anho);
Responder Con Cita
  #6  
Antiguo 18-10-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
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
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #7  
Antiguo 18-10-2007
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
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.
Responder Con Cita
  #8  
Antiguo 18-10-2007
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
Cita:
Empezado por gluglu Ver Mensaje
En Delphi tienes la función IncMonth dentro de la unit SysUtils
... me cito a mi mismo mismamente !

... y me atrevo incluso a rectificar a Lepe, indicando de nuevo que IncMonth está dentro de la unit SysUtils (... al menos en BDS 2006 ). 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.

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.
__________________
Piensa siempre en positivo !
Responder Con Cita
  #9  
Antiguo 21-10-2007
ale_metall ale_metall is offline
Miembro
 
Registrado: sep 2007
Posts: 53
Poder: 17
ale_metall Va por buen camino
gracais amigos, use las funciones d la unit SysUtils, no las conocia.. y me fueron de gran utilidad!!!

agradecido desde ya!!

Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
duda con los campos calculados ercrizeporta Conexión con bases de datos 2 09-05-2007 22:07:24
Otra sobre fechas berfer Firebird e Interbase 4 30-08-2006 09:26:35
Comparar 4 campos fechas y hacer un update con el más nuevo pablo_911 SQL 0 11-07-2006 23:39:27
Duda Con Fechas. kman Varios 4 29-05-2006 02:55:32


La franja horaria es GMT +2. Ahora son las 09:46:56.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi