Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-09-2007
esimon esimon is offline
Miembro
 
Registrado: ago 2005
Ubicación: República Dominica
Posts: 149
Poder: 19
esimon Va por buen camino
Question como sumar una fecha

Hola como esta?

Tengo una tabla llamada Hoteles, en la cual tengo dos campos de fecha
Fecha_Renovacion y proxima_fecha_renovacion, estos campos son tipo Date/Time y estoy utilizando Access lo que quiero hacer es lo siguiente:

cuando yo digite una fecha en el campo Fecha_Renovacion, en el campo Proxima_Fecha_Renovacion me muetre un año depues de la fecha de renovacion.

Ej. Fecha_Renovacion = 14/11/2007
Proxima_Fecha_Renovacion 14/11/2008, esto es porque la renovaciones se hacen anual.

mucha gracias
Responder Con Cita
  #2  
Antiguo 05-09-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Revisa la función IncYear que se encuentra en la unidad DateUtils y la cual se usa, asi:

Código Delphi [-]
//Esto te devolvera un año mas adelante que Fecha_Renovacion
ProximaFechaRenovacion := IncYear(Fecha_Renovacion);

Si quieres mas años tendras que pasarle el segundo parametro, asi, por ejemplo:

Código Delphi [-]
//Esto te devolvera dos años mas adelante que Fecha_Renovacion
ProximaFechaRenovacion := IncYear(Fecha_Renovacion, 2);

Espero te sirva .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #3  
Antiguo 05-09-2007
esimon esimon is offline
Miembro
 
Registrado: ago 2005
Ubicación: República Dominica
Posts: 149
Poder: 19
esimon Va por buen camino
mucha gracias jhonny por tu informacion, no pude resolver con el codigo que me dige, pero si algo como esto

Código:
var
  Frm_GiftShop: TFrm_GiftShop;
  Fecha_soporte : Tdate;
  DD, MM, AA   : word;
Código:
procedure TFrm_GiftShop.Tbl_GiftShopFecha_RenovacionChange(Sender: TField);
begin
   // Fecha_Soporte := Tbl_GiftShopFecha_Renovacion.Value;
    DecodeDate(Fecha_Soporte, DD, MM, AA);
    AA := AA + 1;
    Tbl_GiftShopFecha_Pendiente_Renovacion.Value := Fecha_Soporte;
end;
pero resulta cuando instroduco la fecha en el campo fecha_renovacion, en la proxima fecha a renovar siempre sale la misma no se que estoy haciendo mal.
Responder Con Cita
  #4  
Antiguo 05-09-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por esimon Ver Mensaje
mucha gracias jhonny por tu informacion, no pude resolver con el codigo que me dige, pero si algo como esto
Con que Delphi estas trabajando y porque no te funciona, sale algun error?, deberia funcionarte, yo lo he probado con D6.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #5  
Antiguo 05-09-2007
esimon esimon is offline
Miembro
 
Registrado: ago 2005
Ubicación: República Dominica
Posts: 149
Poder: 19
esimon Va por buen camino
estoy usando Delphi 7
Responder Con Cita
  #6  
Antiguo 05-09-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por esimon Ver Mensaje
estoy usando Delphi 7
Bueno, entonces debe funcionarte, recuerda que debes agregar la unidad DateUtils.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #7  
Antiguo 05-09-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Deberia funcionar, de hecho yo trabajo con incmonth en lugar de incyear y va de maravillas asi como te dice jhonny danos info sobre porq no te funciona
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #8  
Antiguo 05-09-2007
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Tiene razón jhonny, yo hago esta prueba con Delphi 7 utilizando variables en vez de campos y funciona perfectamente.
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
f1:TDate;
f2:TDate;
begin
f1:=Date;
f2:=IncYear(f1);
edit1.Text:=FormatDateTime('dd/mm/yyyy',f2);
end;

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #9  
Antiguo 05-09-2007
esimon esimon is offline
Miembro
 
Registrado: ago 2005
Ubicación: República Dominica
Posts: 149
Poder: 19
esimon Va por buen camino
gracias nuevamente por darme luz en la oscuridad, cuando me dice que tengo que agregar la unidad, aque te esta refiriendo

Cita:
Empezado por jhonny Ver Mensaje
Bueno, entonces debe funcionarte, recuerda que debes agregar la unidad DateUtils.
espero que comprenda el poco conocimiento, sobre la porgramacion
Responder Con Cita
  #10  
Antiguo 05-09-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Checa en la unidad donde quieres hacer la suma de fechas, debes tener una sección llamada implementation:

Código Delphi [-]
implementation

uses DateUtils; // agregas la unidad DateUtils


Saludos...
Responder Con Cita
  #11  
Antiguo 05-09-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por esimon Ver Mensaje
gracias nuevamente por darme luz en la oscuridad, cuando me dice que tengo que agregar la unidad, aque te esta refiriendo

espero que comprenda el poco conocimiento, sobre la porgramacion
Ahhh, , mira, en la parte superior de la unidad debe decir una cosa parecida a esta:

Código Delphi [-]
unit Prueba;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Db, RxMemDS, StdCtrls, DBTables, ComCtrls, Grids, DBGridEh, ExtCtrls,
  ToolWin, ImgList, PrnDbgeh, SrwTypes, DBCtrls, Math, GridsEh;

Entonces cuando te digo que necesitas agregar la unidad DateUtils, quiere decir que a todas esas unidades que vez allí relacionadas, debes agregarle la DateUtils, lo cual quedaria asi:

Código Delphi [-]
unit Prueba;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Db, StdCtrls, DBTables, ComCtrls, Grids, ExtCtrls,
  ToolWin, ImgList, DBCtrls, Math, GridsEh, DateUtils;

Espero te sirva .

Nota: Parece que maeyanes se a adelantado .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/

Última edición por jhonny fecha: 05-09-2007 a las 22:22:35. Razón: Maeyanes se adelanto...
Responder Con Cita
  #12  
Antiguo 06-09-2007
esimon esimon is offline
Miembro
 
Registrado: ago 2005
Ubicación: República Dominica
Posts: 149
Poder: 19
esimon Va por buen camino
muy buen dia a todos y mil gracias nuevamente por toda la atencion prestada.
jhonny ya hice la declaracion, pero me dice que la fecha_renovacion y proxima_fecha_renovar no estan declarada, ya esta eso me dice que tengo que desclararla, me gustaria que me siga arrojando un poco mas de luz y es posible.

mil gracias
Responder Con Cita
  #13  
Antiguo 06-09-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Donde las tienes declaradas, eso solo lo sabes vos, ya que vos mismo haz dicho que son unos campos de la base de datos, entonces, solo basta con que coloques alli dichos campos, en lugar de las variables que te mostre como ejemplo .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #14  
Antiguo 06-09-2007
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Lo que creo que falta aquí es el EncodeDate

Código:
procedure TFrm_GiftShop.Tbl_GiftShopFecha_RenovacionChange(Sender: TField);
var dd,mm,aa : word;
begin
   // Fecha_Soporte := Tbl_GiftShopFecha_Renovacion.Value;
    DecodeDate(Fecha_Soporte, DD, MM, AA);
    AA := AA + 1;
    Fecha_Soporte := EncodeDate(DD, MM, AA);
    Tbl_GiftShopFecha_Pendiente_Renovacion.Value := Fecha_Soporte;
end;
Tambien podría ser :

Código:
procedure TFrm_GiftShop.Tbl_GiftShopFecha_RenovacionChange(Sender: TField);
var dd,mm,aa : word;
begin
   // Fecha_Soporte := Tbl_GiftShopFecha_Renovacion.Value;
    DecodeDate(Fecha_Soporte, DD, MM, AA);
    Fecha_Soporte := EncodeDate(DD, MM, AA + 1);
    Tbl_GiftShopFecha_Pendiente_Renovacion.Value := Fecha_Soporte;
end;
Responder Con Cita
  #15  
Antiguo 06-09-2007
esimon esimon is offline
Miembro
 
Registrado: ago 2005
Ubicación: República Dominica
Posts: 149
Poder: 19
esimon Va por buen camino
Cita:
Empezado por duilioisola Ver Mensaje
Lo que creo que falta aquí es el EncodeDate

Código:
procedure TFrm_GiftShop.Tbl_GiftShopFecha_RenovacionChange(Sender: TField);
var dd,mm,aa : word;
begin
   // Fecha_Soporte := Tbl_GiftShopFecha_Renovacion.Value;
    DecodeDate(Fecha_Soporte, DD, MM, AA);
    AA := AA + 1;
    Fecha_Soporte := EncodeDate(DD, MM, AA);
    Tbl_GiftShopFecha_Pendiente_Renovacion.Value := Fecha_Soporte;
end;
Tambien podría ser :

Código:
procedure TFrm_GiftShop.Tbl_GiftShopFecha_RenovacionChange(Sender: TField);
var dd,mm,aa : word;
begin
   // Fecha_Soporte := Tbl_GiftShopFecha_Renovacion.Value;
    DecodeDate(Fecha_Soporte, DD, MM, AA);
    Fecha_Soporte := EncodeDate(DD, MM, AA + 1);
    Tbl_GiftShopFecha_Pendiente_Renovacion.Value := Fecha_Soporte;
end;
no puedo cansarme de darles las gracias a todos por ayudarme a resolver este problema.

duiliosola, estuve provando con la runtida que me enviaste pero me esta sumando el dia no el año, solo quiero sumarle uno al año.
Responder Con Cita
  #16  
Antiguo 06-09-2007
esimon esimon is offline
Miembro
 
Registrado: ago 2005
Ubicación: República Dominica
Posts: 149
Poder: 19
esimon Va por buen camino
tengo que agradecele a todos los que me ayudaron por la experician que expresan se puede decir que es dudoso que yo pueda ayudarlo pero nadie sabe para mi seria mas que un placer poder ayudarlo en algo y a ti jhonny que no puede usar la rutina que me enviaste pero voy a tratar de ver como puedo usarla para aprendermela y aqui pongo la rutina que use, por si otro tiene la misma inquitud que yo.

[code]
procedure TFrm_GiftShop.Tbl_GiftShopFecha_RenovacionChange(Sender: TField);
begin
Fecha_Soporte := Tbl_GiftShopFecha_Renovacion.Value;
DecodeDate(Fecha_Soporte, AA, MM, DD);
AA := AA + 1;
Fecha_Soporte := EncodeDate(AA, MM, DD);
Tbl_GiftShopFecha_Pendiente_Renovacion.Value := Fecha_Soporte;
end;
[/codo]
es la misma que me envio duiliodola, la unica diferencia esta en la decodificacion de la fecha.

mil gracias a todos sigan pasandola bien
Responder Con Cita
  #17  
Antiguo 06-09-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Pusiste en el uses de la unidad la referencia a la unidad DateUtils?

Con esa unidad solo tienes que hacer:

Código Delphi [-]
procedure TFrm_GiftShop.Tbl_GiftShopFecha_RenovaciónChange(Sender: TField);
var
  Fecha_Soporte: TDateTime;

begin
  Fecha_Soporte := Sender.Value;
  IncYear(Fecha_Soporte);
  Tbl_GiftShopFech_Pendiente_Renovacion.Value := Fecha_Soporte
end;


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
sumar dias una fecha dada Goyo Varios 3 25-05-2007 02:23:39
Sumar dias a una fecha inicial en delphi bellota Varios 4 06-06-2006 16:42:40
Sumar solo años a una fecha YaninaGenia Varios 3 03-10-2005 21:45:26
SUmar dias a una fecha raffagia Varios 1 04-10-2004 18:28:13
Sumar Dias a una fecha? danytorres SQL 1 16-01-2004 05:04:15


La franja horaria es GMT +2. Ahora son las 10:13:20.


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