FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
resta entre fecha !!
Hola delphiano me surgio un problema interesante que no le ecuentro la vuelta
resulta que tengo que indicar si existe mas de x segundos de diferencia entre 2 fechas que se encuentra en string con el formato yyyymmddhhnnss parecia tonto lo 1º que se me ocurrio es pasarlo los 2 string a entero y hacer la resta grabe error no contemple el siguiente ejemplo: a='20070228100003'; b='20070228095958'; esto tendria que darme 5 segundos a alguien se le ocurre como solucionarlo |
#2
|
||||
|
||||
Yo te recomendaría pasar los strings a un TDateTime y utilizar la función SecondsBetween .
PD: Es importante tener la premisa que para trabajar con fechas lo mejor es que estas sean fechas y no cadenas!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#3
|
||||
|
||||
tenes razón pero lo veo algo engorroso porque no se como estara el formato en la Pc del cliente y esta funcion se basa en el formato de Windows, igualmente gracias
|
#4
|
|||
|
|||
Cita:
Cita:
Esto puede no ser lo mejor ni muy elegante pero funciona, estuve usando diferentes variables y en algunos casos hay una diferencia de 1 segundo, quizas por cuestiones de redondeo, no se. Saludos y espero te ayude.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
#5
|
||||
|
||||
Cita:
Formato de fecha y hora: 23/01/2007 23:59:59.999 (falta 1 milisegundo para que desencadene el cambio de fecha). Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#6
|
|||
|
|||
lo mas facil convierte los valores a TDatetime
haces la resta, la parte entera es la cantidad de dias que hay de diferencia y luego la parte decimal son las horas, para eso usas el formatDateTime algo asi como FormatDateTime('hh:nn:ss', VariableDiferenciaFecha) eso te mostrara la diferencia en horas minutos y segundos como no especificas AM/PM no tendras problemas |
#7
|
||||
|
||||
Lamentablemente no es la socucion supon que hay que calcular la diferncia entre:
20070302000001 20070301235959 Igualmente muchas gracias |
#8
|
||||
|
||||
El trabajo de fechas en delphi no tiene que ver con el formato usado en windows.
Bien es verdad que usando las variables ShortDateFormat de la unidad SysUtils, puedes mostrar una fecha del mismo modo que hace windows, pero también puedes usar tu método particular de mostrar una fecha como te ha dicho luisgutierrezb. EncodeDateTime de la unidad DateUtils, te ayudará a crear las fechas y la respuesta de delphi.com.ar es la mejor. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#9
|
||||
|
||||
Cita:
|
#10
|
||||
|
||||
Cita:
Coloca la siguiente función: Luego podras usarla asi: Y Listo, 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/ |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Resta de horas | didier | Varios | 24 | 18-11-2010 23:11:54 |
REsta Fechas | Juanito-Kun | Firebird e Interbase | 2 | 11-10-2005 20:52:23 |
Resta equivocada... | jhonny | Varios | 6 | 26-09-2005 18:43:20 |
Resta de Tablas con SQL | agova | SQL | 8 | 24-11-2003 21:20:25 |
Dias entre una fecha y la fecha del sistema | afarenas | Firebird e Interbase | 1 | 30-09-2003 17:36:53 |
|