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 28-07-2008
esimon esimon is offline
Miembro
 
Registrado: ago 2005
Ubicación: República Dominica
Posts: 149
Poder: 19
esimon Va por buen camino
Thumbs up como sumar Dias a una fecha

Muy buen dia para todo, espero que me disculpen se que hay mucho hilo con esta pregunta pero no pude adactar uno a lo que yo quiero hacer o necesito.

lo que quiero hacer es sumarle a un DateTimePicker el numero que digite en un Edit, sin que me tome los dias de fiesta. ej.

si hoy es lunes 28/07/2008 y en el Edti digito un 5 el DateTimePicker seria
04/08/2008, eso es lo que quiero.


mil gracias
Responder Con Cita
  #2  
Antiguo 28-07-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola esimon, sería mas o menos así:

Código Delphi [-]
var
 cont : Integer;
 Fecha : TDateTime;
begin
 Fecha := Now;
 cont := 1;
 While cont<=StrToInt(Edit1.Text) do
  begin
   Fecha := IncDay(Fecha, 1);
   if (DayOfTheWeek(Fecha)<>6) and (DayOfTheWeek(Fecha)<>7) then
    inc(cont);
  end;
 DateTimePicker1.Date := Fecha;

DayOfTheWeek, nos devuelve el día de la semana.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #3  
Antiguo 28-07-2008
esimon esimon is offline
Miembro
 
Registrado: ago 2005
Ubicación: República Dominica
Posts: 149
Poder: 19
esimon Va por buen camino
mil gracias Caro, por la repuesta no dije que estoy usando delphi 7 y Accesse, otra cosa quien es IncDay y DayOfTheWeek porque me dice que no esta declarada.
Responder Con Cita
  #4  
Antiguo 28-07-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola de nuevo esimon, tienes que aumentar en tu uses la unidad DateUtils, que es ahí donde estan esas dos funciones, IncDay, te incrementa la cantiadad de días que tu le indiques en tu caso 1 y DayOfTheWeek nos devuelve el día de la semana de la fecha que le pasas como parametro 6->sabado y 7->domingo.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #5  
Antiguo 28-07-2008
esimon esimon is offline
Miembro
 
Registrado: ago 2005
Ubicación: República Dominica
Posts: 149
Poder: 19
esimon Va por buen camino
mucha gracias caro, esta funcionando a la perfeccion
Responder Con Cita
  #6  
Antiguo 28-07-2008
esimon esimon is offline
Miembro
 
Registrado: ago 2005
Ubicación: República Dominica
Posts: 149
Poder: 19
esimon Va por buen camino
mucha gracias caro, esta haciendo lo que yo quiero, pero el DateTimePicker siempre me muestra la fecha actual si importar la modificacion del registro. te puedo hacer un ej. con la fecha del hoy, el DateTimePicker tiene fecha de 28/07/2008 si en el edit digito un numero 5, el DateTimePicker sera 04/07/2008, eso quiere decir que esta funcionando, grabo mi registro. pero si vuelvo al mismo registro el DateTimePicker es igual a 28/07/2008 cuando tiene que tener la fecha de 04/07/2008, puede decirme que esta pasando.
Responder Con Cita
  #7  
Antiguo 28-07-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por esimon Ver Mensaje
mucha gracias caro, esta haciendo lo que yo quiero, pero el DateTimePicker siempre me muestra la fecha actual si importar la modificacion del registro. te puedo hacer un ej. con la fecha del hoy, el DateTimePicker tiene fecha de 28/07/2008 si en el edit digito un numero 5, el DateTimePicker sera 04/07/2008, eso quiere decir que esta funcionando, grabo mi registro. pero si vuelvo al mismo registro el DateTimePicker es igual a 28/07/2008 cuando tiene que tener la fecha de 04/07/2008, puede decirme que esta pasando.
Hola esimon, sin saber que componentes estás usando y el modo en que lo estás empleando no sabríamos decirte a que se debe tu problema. ¿Podrías por favor darnos más detalles del asunto? Si es posible, una demostración del código.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #8  
Antiguo 29-07-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por esimon Ver Mensaje
mucha gracias caro, esta haciendo lo que yo quiero, pero el DateTimePicker siempre me muestra la fecha actual si importar la modificacion del registro. te puedo hacer un ej. con la fecha del hoy, el DateTimePicker tiene fecha de 28/07/2008 si en el edit digito un numero 5, el DateTimePicker sera 04/07/2008, eso quiere decir que esta funcionando, grabo mi registro. pero si vuelvo al mismo registro el DateTimePicker es igual a 28/07/2008 cuando tiene que tener la fecha de 04/07/2008, puede decirme que esta pasando.
Hola esimon, sobre el codigo que te puse, esta tomando la fecha actual con Now, por lo que sería mejor que pases lo que tienes en tu DateTimePicker, que al parecer no siempre sera la fecha actual.

Código Delphi [-]
var
 cont : Integer;
 Fecha : TDateTime;
begin
  Fecha := DateTimePicker1.Date;
  cont := 1;
  While cont<=StrToInt(Edit1.Text) do
  .........
  .......

Ahora sobre tu problema, como te dice Marcelo, danos mas detalles para que te podamos ayudar y pon el codigo donde crees que este tu problema.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #9  
Antiguo 02-08-2008
esimon esimon is offline
Miembro
 
Registrado: ago 2005
Ubicación: República Dominica
Posts: 149
Poder: 19
esimon Va por buen camino
mucha gracias Caro y Delphius, por dedicarme parte de tu apreciado tiempo.

Estoy haciendo un sistema para supervisar establecimientos, pero dentro de esa supervision a un establecimiento X, le puedo dar un plazo de 1o dias laborables para hacerle una numeva supervision para que corrijar algunos problemas que se encontraron en dicho establecimiento, claro estoy 10 dias son laborable, sin incluir los dias feriados, sabado ni domingos.

para que el sistema haga esa parte automaticamente, uso un Edtit en el cual digito la cantidad de dias y un DeteTimePicke, para que me muestre la fecha que le toma la supervision a dicho establecimiento y estoy usando el codigo que me envio caro.

Código:
var
 cont : Integer;
 Fecha : TDateTime;
begin
 Fecha := Now;
 cont := 1;
 While cont<=StrToInt(Edit1.Text) do
  begin
   Fecha := IncDay(Fecha, 1);
   if (DayOfTheWeek(Fecha)<>6) and (DayOfTheWeek(Fecha)<>7) then
    inc(cont);
  end;
 DateTimePicker1.Date := Fecha;
Con este codigo cuando yo le digo a un establecimeinto que tienex dia para la proxima inspeccion en el DateTimePicke me hace el calculo y me lo graba en la tabla, pero si entro a ese establecimiento el DateTimePicke me presenta la fecha actual y no la que le correposnde con el plazo establecido.
Responder Con Cita
  #10  
Antiguo 02-08-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola esimon,
Yo no veo problema en el cálculo de los días. Es posible que el problema lo tengas al insertar los datos. Por favor, ¿Podrías mostrarnos el código que empleas para guardar? ¿Que componentes de acceso a base a datos usas?¿Motor?

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #11  
Antiguo 02-08-2008
esimon esimon is offline
Miembro
 
Registrado: ago 2005
Ubicación: República Dominica
Posts: 149
Poder: 19
esimon Va por buen camino
gracias Delphius, nuevamente.

como dije anteriormente uso delphi 7 y accesse 2003, para insertar uso este codigo
Código:
 
procedure TFrm_Agencia.SpeedButton6Click(Sender: TObject);
begin
       Tbl_Agencias.Insert;
              
end;
y para grabar este.

Código:
 
procedure TFrm_Agencia.SpeedButton5Click(Sender: TObject);
begin
       if Tbl_Agencias.State in [dsEdit, dsInsert] then
          Tbl_AgenciasNumero_Provincia.Value := Tbl_ProvinciaNumero_Provincia.Value;
          Tbl_AgenciasNumero_Localidad.Value := Tbl_LocalidadNumero_Localidad.Value;
        //  DateTimePicker1.Date := Tbl_AgenciasFecha_Pendiente_Inspeccion.Value;
          Tbl_AgenciasFecha_Pendiente_Inspeccion.Value := DateTimePicker1.Date;
          Tbl_Agencias.Post;
end;
Responder Con Cita
  #12  
Antiguo 02-08-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola esimon,
No veo problema en el código, es más hice una prueba y funciona.

Me gustaría que por favor me indicaras que componentes usas. Yo probé con ADO y he empleado el Proveedor Microsoft Jet 4.0 OLE DB tan ampliamente usado.

¿Usas otros componentes y/o tecnología de acceso a la base de datos? No se por donde vendrá el problema, pero no veo problemas en ese código... el error puede venir de otro lado.

Dices que la fecha no la guarda adecuamente ¿sólo la fecha? ¿guarda los otros campos? ¿Te aseguraste de que la tabla Provincia y Localidad estén abiertas? ¿El cursor está en algún registro válido?

Hay muchas cosas por analizar... pero por lo pronto, en ese código no veo algo raro.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #13  
Antiguo 02-08-2008
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Creo que el problema es la forma de manejo del control.

El TDateTimePicker no permite calculos sobre las fechas, solo seleccionarlas.

Lo que quieres requiere un control nuevo, que combine el Pivker con un Edit personalizado que haga mask dinamico y esas cosas, porque por codigo esta ok.

Una inspiracion:

http://www.datejs.com/
__________________
El malabarista.
Responder Con Cita
  #14  
Antiguo 03-08-2008
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
Cita:
Empezado por mamcx Ver Mensaje
...

Una inspiracion:

http://www.datejs.com/
Vaya que inspiracion, gracias por el link amigo me ha encantado el pequeño script.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #15  
Antiguo 03-08-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por esimon
mucha gracias caro, esta haciendo lo que yo quiero, pero el DateTimePicker siempre me muestra la fecha actual si importar la modificacion del registro. te puedo hacer un ej. con la fecha del hoy, el DateTimePicker tiene fecha de 28/07/2008 si en el edit digito un numero 5, el DateTimePicker sera 04/07/2008, eso quiere decir que esta funcionando, grabo mi registro. pero si vuelvo al mismo registro el DateTimePicker es igual a 28/07/2008 cuando tiene que tener la fecha de 04/07/2008, puede decirme que esta pasando.
Me pregunto que hace tu código cuando muestras el registro, como estás asignando el DateTimePicker, yo creo que ahí está el problema.

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #16  
Antiguo 04-08-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola esimon, tu codigo de inserción esta bien como te dice Marcelo, revisa si en la Base de Datos se esta registrando bien, porque parece que tu problema esta al recuperar nuevamente ese dato en tu DateTimePicker, como lo estas recuperando?.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #17  
Antiguo 05-08-2008
esimon esimon is offline
Miembro
 
Registrado: ago 2005
Ubicación: República Dominica
Posts: 149
Poder: 19
esimon Va por buen camino
gracias nuevamente, disculpen el retraso de mi repuesta pero estuve guscando y verificando doto para ver si encontraba el problema, Delphius yo estoy usando los mismos componentes que usate como prueba, ahora bien ese codigo lo estoy usando en el Evento OnExit del edit del campo dia y es donde tengo el pequeño problema.

Le puese comentario el que esta en el OnExit y lo coloque en el OnChange y hay funciona bien de bien, pero como mi tabla tiene mucho registros y tengo que modificar coda registro en el primier registro no tengo problema cuando voy a pasar al proximo registro da este mensaje.

Código:
Is not a valid integer value
Responder Con Cita
  #18  
Antiguo 05-08-2008
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
Cita:
Empezado por esimon Ver Mensaje
Código:
Is not a valid integer value
Hola, el mensaje lo dice todo, tal vez el dato insertado no es un valor entero o tenga un punto decimal o un espacio, verfica bien los datos que colocas.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #19  
Antiguo 05-08-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola esimon, me gustaría saber ayudarte pero sin conocer mejor como estás haciendo las asignaciones al momento de mostrar los valores no sabré como ayudarte. Tu duda inicial pasaba por una inserción o alta... ahora al parecer se trata de una operación de lectura, y me parece que es allí donde está el problema...

Te habíamos pedido que nos hicieras llegar más detalles te la situación. Me gustaría que nos hicieras llegar el código para saber donde tienes problemas. De otro modo seguiremos estando a las adivinanzas.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
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 a fecha actual MOCOSO07 Varios 7 15-06-2008 18:53:23
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 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 09:56:47.


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