FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problemilla con un calculo.
Hola chicos aqui tamos con un problema que ma surgido y no se como resolverlo, os explico.
Tengo label1 y label2 con este caption el label1 1:12:150 y 1:13:250 el label2, el formto es de minuto segundos milesimas, lo que necesito es que me compruebe si entre los dos label hay una diferencia de 2 minutos, si la hay que me devuelva un mensajito y si no la hay pues que me devuelva otro mensaje. Espero haberme explicado con claridad, como siempre un saludo.CRIS. Última edición por CRIS fecha: 11-11-2005 a las 16:06:50. |
#2
|
||||
|
||||
Deberías decir en qué parte tienes el problema...
(1a) Primero deberías convertir los valores a DateTime (StrToDateTime) (2a) Una vez tienes TDateTime hay una función llamada DecodeDateTime que te "trocea" un DateTime y te devuelve las horas, minutos, segundos y milésimas... (1b) O directamente extraer cada una de las partes correspondientes a horas, minutos, segundos y milésimas (función Copy) A partir de aquí es cuestión de un IF, una sencilla resta, sacar el mensaje.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
|||
|
|||
Muchas gracias, voy a intentarlo a ver si soy capaz de hacerlo.
Salu2.CRIS. |
#4
|
||||
|
||||
Disculpen pero, esto ¿qué tiene que ver con matemáticas?
// Saludos |
#5
|
||||
|
||||
Hola Román, yo recuerdo un catedrático de matemáticas que tuve que contaba chistes muy buenos, pero nunca le pregunte la relación del humor y la cifra, por si acaso......
Jeje. Un Saludo atemporal.
__________________
Guía de Estilo de los Foros Cita:
|
#6
|
|||
|
|||
No se como hacerlo, gracias a los tres.
Salu2.CRIS. |
#7
|
||||
|
||||
Cita:
// Saludos |
#8
|
||||
|
||||
Cita:
¿No entiendes las funciones? ¿No sabes cómo usarlas? ¿Te dan error (y qué error te dan)? ¿No te dan error, pero no te funciona? La verdad es que 4 palabras -del último mensaje- (sin contar las gracias y el saludo) es muy poca información.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#9
|
|||
|
|||
Los datos los pillo de un fichero.ini que me bajo de internet, el label1 pilla el dato del ini y el label2 pilla el dato de un fichero de texto que esta encriptado, lo que necesito es comparar los dos tiempos y si es mayor de dos segundos que me devuelva un mensaje de, la vuelta rapida supera en dos segundos el record de la pista.
Neftali estas dos cosas son las que me ocurre ¿No entiend las funciones? ¿No se cómo usarlas? pd. el saludo y las gracias nunca pueden faltar. Salu2.CRIS. |
#10
|
|||
|
|||
Hasta aqui llego chicos, pero me da horas minutos y segundos. |
#11
|
||||
|
||||
Supongo que de "diferencia" tendrías que usar DecodeDateTime para obtener los segundos y luego una simple comparación para ver si es mayo o no a 2 segundos. DecodeDateTime viene muy bien explicado en la ayuda de delphi, presionando F1 sobre la palabra. O tal vez solo comparando Dierencia.
__________________
|
#12
|
||||
|
||||
Código:
DecodeTime(StrToTime("00:"+label1->Caption),h1,m1,s1,ms1); DecodeTime(StrToTime("00:"+label2->Caption),h1,m2,s2,ms2); if( abs(((m1*60*1000+s1*1000+ms1)-(m2*60*1000+s2*1000+ms2))/(1000*60)) >= 2) //hay por lo menos 2 segundos de diferencia
__________________
Los Estados Unidos parecen destinados por la Providencia para plagar la América de miserias a nombre de la libertad." Simón Bolívar (Carta al Coronel Inglés Patricio Cambell 05/08/1829). |
#13
|
||||
|
||||
Al menos en Delphi7 existe la función MinutesBetween, que devuelve la diferencia en minutos entre dos variables tipo TDateTime.
Cita:
|
#14
|
|||
|
|||
Solucionado bajando los tiempos en el ini en milisegundos:
Muchas gracias a todos y un Salu2.CRIS. |
#15
|
||||
|
||||
CRIS, ten cuidado, ese código es "muy perezoso", y puedes tener muchos problemas con él. Deberías leer de nuevo las soluciones que te han propuesto.
Razones: - Val intenta convertir el diferencia.Text en Nvalor, si no se puede convertir, Devuelve el ErrCode, que despues no lo usas para nada, El valor que tenga nvalor puede estar indefinido, o peor aún, será cero, indicando que ha hecho la mejor vuelta posible, cuando en realidad no es cierto. - Estas realizando conversiones innecesarias: if nValor > StrToInt('2000') quizás if nValor > 2000 - Que jamás se ejecute tu programa entre las 23:59:00 y las 0:00:00, como no controlas las fechas, dará casi 24 horas de diferencia. Por tus mensajes, deduzco que tienes prisas en terminarlo. Para el reloj y estudia las funciones de fechas, vienen muy bien en la ayuda, y si despues tienes preguntas, estaremos por aquí. saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
|
|