Ir al contenido


Foto

CREAR UNA NUEVA FECHA


  • Por favor identifícate para responder
7 respuestas en este tema

#1 discorf1978

discorf1978

    Newbie

  • Miembros
  • Pip
  • 8 mensajes

Escrito 13 noviembre 2012 - 02:33

Hola como estan,
bueno mi problema radica en que tengo un dbedit= con formato fecha
y la fecha que tomo es la del sistema
dbfecinicial=11/11/2012
pero me gustaria que la fecha final
quedara
dbefecfinal=11/12/2012
La inicial la tomo del sistema con el Date();
pero si le sumo 30 dias, no siembre
en todos los meses queda el dia igual aveces queda el 10 0 el 9?
Como podria solucinarlo????

Gracias
  • 0

#2 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 13 noviembre 2012 - 02:56

Hola amigo discorf1978... bienvenido a DelphiAccess (y)

Puedes hacer uso de la función de Delphi



delphi
  1. function IncMonth( const Date: TDateTime; NumberOfMonths: Integer = 1 ): TDateTime;



La cual recibe como parámetros la fecha inicial y el número de meses a incrementar...

Saludox ! :)
  • 0

#3 TiammatMX

TiammatMX

    Advanced Member

  • Miembros
  • PipPipPip
  • 1.750 mensajes
  • LocationUniverso Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Ciudad de México\Xochimilco\San Gregorio Atlapulco\Home

Escrito 13 noviembre 2012 - 04:09

...dbfecinicial=11/11/2012 pero me gustaria que la fecha final quedara dbefecfinal=11/12/2012. La inicial la tomo del sistema con el Date(); pero si le sumo 30 dias, no siembre en todos los meses queda el dia igual a veces queda el 10 0 el 9? Como podria solucinarlo????...


Podrías utilizar el método que acá en el trabajo usamos:



delphi
  1. iLaFecha := Trunc(dLaFecha);
  2. iLaFecha := iLaFecha + 30;
  3. dbfecinicial.Date := iLaFecha;



La razón es fácil. Internamente, cualquier fecha es un entero, ya que contabiliza un 'n' número de días a partir de una fecha base, y puede ser asignado directamente como un entero a un campo de fecha. ;)
  • 0

#4 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 13 noviembre 2012 - 04:16


...dbfecinicial=11/11/2012 pero me gustaria que la fecha final quedara dbefecfinal=11/12/2012. La inicial la tomo del sistema con el Date(); pero si le sumo 30 dias, no siembre en todos los meses queda el dia igual a veces queda el 10 0 el 9? Como podria solucinarlo????...


Podrías utilizar el método que acá en el trabajo usamos:



delphi
  1. iLaFecha := Trunc(dLaFecha);
  2. iLaFecha := iLaFecha + 30;
  3. dbfecinicial.Date := iLaFecha;



La razón es fácil. Internamente, cualquier fecha es un entero, ya que contabiliza un 'n' número de días a partir de una fecha base, y puede ser asignado directamente como un entero a un campo de fecha. ;)


Ésta solución no genera el mismo problema que nos comenta discorf1978 ???...  ^o|

Se pretende sumar un mes, no exactamente 30 días... (por ejemplo Fecha Inicial: 5 de Mayo, si se suman 30 días = 4 de Junio, si se suma un mes = 5 de Junio)...

Saludox ! :)
  • 0

#5 TiammatMX

TiammatMX

    Advanced Member

  • Miembros
  • PipPipPip
  • 1.750 mensajes
  • LocationUniverso Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Ciudad de México\Xochimilco\San Gregorio Atlapulco\Home

Escrito 13 noviembre 2012 - 04:19

Ésta solución no genera el mismo problema que nos comenta discorf1978 ???...  ^o|

Se pretende sumar un mes, no exactamente 30 días... (por ejemplo Fecha Inicial: 5 de Mayo, si se suman 30 días = 4 de Junio, si se suma un mes = 5 de Junio)...

Saludox ! :)


¿Era éso?  :| :| Perdón, leí mal entonces  *-) *-) ..., pero bueno, ya tiene un "norte" de cómo solucionar el problema... :p
  • 0

#6 discorf1978

discorf1978

    Newbie

  • Miembros
  • Pip
  • 8 mensajes

Escrito 13 noviembre 2012 - 08:18

:smiley:Bueno muy gentiles fue de gran ayuda.  Gracias
  • 0

#7 TiammatMX

TiammatMX

    Advanced Member

  • Miembros
  • PipPipPip
  • 1.750 mensajes
  • LocationUniverso Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Ciudad de México\Xochimilco\San Gregorio Atlapulco\Home

Escrito 14 noviembre 2012 - 09:14

¿Y cómo solucionaste? Digo, para el registro...
  • 0

#8 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.301 mensajes
  • LocationArgentina

Escrito 15 noviembre 2012 - 11:37

La razón es fácil. Internamente, cualquier fecha es un entero, ya que contabiliza un 'n' número de días a partir de una fecha base, y puede ser asignado directamente como un entero a un campo de fecha. ;)

Errrrrrrrr (o el sonido que se haga en los juegos televisos de trivia).
Las fechas o se guardan como entero. Se guardan en coma flotante. De hecho, las fechas son la parte entera, mientas que las horas, minutos y segundos son los decimales. Entonces, vendría a ser algo como: fecha.hora

De esto se aprecia que no funciona del todo tu propuesta. Lo sano es ir por la función IncMonth que ha recomendado Fenareth.

Saludos,

Saludos,
  • 0




IP.Board spam blocked by CleanTalk.