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
|
|||
|
|||
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 |
#5
|
||||
|
||||
Lamentablemente no es la socucion supon que hay que calcular la diferncia entre:
20070302000001 20070301235959 Igualmente muchas gracias |
#6
|
||||
|
||||
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. |
#7
|
|||
|
|||
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 |
#8
|
||||
|
||||
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. |
#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/ |
#11
|
||||
|
||||
Cita:
muchas gracias si me sirvio pero ahora tengo otro problema como saber si un numero es multiplo de 4 y cuantos dias trae el mes en el que esta la fecha |
#12
|
||||
|
||||
La función DaysInAMonth que se encuentra en la unidad DateUtils a partir de Delphi6 y DateUtil en Delphi5 te devolvera los dias de un mes indicándole también el año.
Así:
Esa función sabrá de antemano cuales son los años bisiestos de manera pues que no necesitaras calcular por aparte, si el año en curso es o no es bisiesto. Pero en caso de que obligatoriamente necesites saber si es o no Bisiesto podrás usar la función IsInLeapYear que devuelve True en caso de que si lo sea y False en caso contrario.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#13
|
||||
|
||||
A bueno y si la cuestión no es de año bisiesto y todo el asunto, si no que solo quieres saber si un numero es multiplo de 4 o no, pues bastara con averiguar si ese numero dividido por 4 arrojara un resto de 0, un ejemplo:
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#14
|
||||
|
||||
Cita:
Muchas gracias jhonny me sirvio de mucha tu ayuda |
#15
|
|||
|
|||
Restar fechas en formato numerico 20070701
Perdon por la intromicion en el foro pero tengo un problema similar
expongo mi caso tengo un archivo .bdf el cual administro desde database desktop y uso un sql del mismo para hacer consultas, puedo hacer las consultas a mi gusto... hasta aqui muy bien... Pero el problema surge cuando tengo que restar dos fechas en esta tabla dentro del mismo sql ( el formato de la fecha que maneja la tabla es numerico osea "20070701 - 20070805", Fecha 1 y 2 respectivamente ) Eso da como resultado numerico dentro del sql 104 muy bien es el resultado numerico, pero me intereza el resultado de la resta entre las fechas osea 35 dias, alguien sabe como hacerlo en el mismo sql.... les agradeceria mucho su ayuda....
__________________
JaiMelendez |
#16
|
|||
|
|||
Yo haría una conversión de esos números a variables de tipo TDateTime y usaría la función DaysBetween();
Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
#17
|
|||
|
|||
creo que esa seria una buena idea...
pero... no uso delphi, si no solamente sql y todas las operaciones las tengo que hacer con este... muchas gracias por su ayuda
__________________
JaiMelendez |
|
|
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 |
|