Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-08-2005
majosf majosf is offline
Miembro
 
Registrado: jun 2005
Posts: 27
Poder: 0
majosf Va por buen camino
Smile problemas con datetime

Hola!! Somos un grupo de chicas q stamos con el pfc. Necesitamos saber como sumarle dias a una fecha y q respete el 31 y los bisiestos.
Ayudarnos, q codigo seria?? Por ejemplo: es el 23/7/2005 y queremos sumarle 10 dias. Q devuelva 2/8/2005.

Muchas gracias!!
Responder Con Cita
  #2  
Antiguo 31-08-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Si esa fecha la tienes un un TDateTime, simplemente le tienes que sumar dos enteros.

Código Delphi [-]
var
  AFecha: TDateTime;
begin
  {Convierte la cadena a un TDateTime
    Suponiendo que el formato es válido }
  AFecha := StrToDate('23/07/2005');

  {Realiza la operación aritmética}
  AFecha := AFecha + 2;

  {Convierte la fecha a un string y la mustra}
  ShowMessage(DateToStr(AFecha)); 
end;

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 31-08-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Me llamó la atención Federico, ¿porqué dos enteros? ¿porqué no usar una función como "IncDay"?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #4  
Antiguo 31-08-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por dec
Me llamó la atención Federico, ¿porqué dos enteros? ¿porqué no usar una función como "IncDay"?
Costumbre... ¡Recuerda que la unit DateUtils recién apareción en Delphi 6!


PD: No va al caso, pero observa la diferencia del código compilado de un método y el otro...
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.

Última edición por delphi.com.ar fecha: 31-08-2005 a las 21:29:40.
Responder Con Cita
  #5  
Antiguo 31-08-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por Federico
(...) observa la diferencia del código compilado de un método y el otro (...)
Querrás decir tal vez que el resultado al cabo es el mismo con cualquiera de los dos métodos. Comprendo lo de que la unidad "DateUtils" no está disponible en las versiones anteriores a la sexta de Delphi y alabo tu decisión, entonces.

Debía haber probado antes el código que has puesto como ejemplo. Efectivamente, lo que se hace en el mismo es sumar dos días a la fecha en cuestión: comprobado y todo bien.

Lo que llamó mi atención fue a partir de lo que decía majosf:

Cita:
Empezado por majosf
Por ejemplo: es el 23/7/2005 y queremos sumarle 10 dias. Q devuelva 2/8/2005.
Esto es, al ver que sumabas dos enteros a la fecha y fijarme en que se pretendía "sumar" 10 días a la misma... pues de ahí que me preguntara, ¿cómo sumando dos enteros se consigue al cabo "sumar" 10 días a la fecha de marras?

Pero, como digo, ya he probado el ejemplo, y, efectivamente, tú sumas dos enteros, esto es, dos días, que podrían ser diez sumando diez enteros
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #6  
Antiguo 31-08-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Esto es, al ver que sumabas dos enteros a la fecha y fijarme en que se pretendía "sumar" 10 días a la misma... pues de ahí que me preguntara, ¿cómo sumando dos enteros se consigue al cabo "sumar" 10 días a la fecha de marras?
Simplemente escribí un ejemplo sin fijarme cuánto sumaban en su ejemplo!

Cita:
Empezado por dec
Querrás decir tal vez que el resultado al cabo es el mismo con cualquiera de los dos métodos.
No precisamente, no quería complicar el hilo, simplemente porque vamos a marear majosf`s, pero el código compilado de un IncDate es mucho mayor al de la simple adición, ya que no tiene una optimización similar a la función Inc y es tratada como cualquier función.... Solo un pequeño detalle .

PD: ¿Se borró un mensaje de este hilo?

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #7  
Antiguo 31-08-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por Federico
(...) pero el código compilado de un IncDate es mucho mayor al de la simple adición, ya que no tiene una optimización similar a la función Inc y es tratada como cualquier función....
Uy... me temo que a esas sutilezas no llegaré yo en mucho tiempo... Pero bien está saberlo, a alguien podrá aprovecharle, es de suponer.

Cita:
Empezado por Federico
PD: ¿Se borró un mensaje de este hilo?
Por mí podré decir que, en este Hilo, no borré ninguno de los que escribí. Ah, y gracias por todo Federico.
__________________
David Esperalta
www.decsoftutils.com
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


La franja horaria es GMT +2. Ahora son las 14:34:04.


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