FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Calcular tiempo restante y mostrar en porcentaje
Muy buenas...
Estoy usando variables tipo TdateTime, para medir tiempo de adquisicion de datos. Uso durTotal para duración total de datos Luego comparo con la fecha y hora actual. hago la resta if (Now()>=DurTotal) then termino captura. Cuando muestro tiempo restante (durTotal -now) si la duracción total supera en unas 12 horas o un dia me la muestra mal. Y como puedo hacer que se muestre en porcentaje (como son valores (tdatetime) con muchos decimales no se como hacerlo) para usar una progressbar Un saludo... |
#2
|
|||
|
|||
No sé que versión de delphi tienes, pero si es superior a la 6 échale un vistazo a la libreria DateUtils, creo que tiene lo que buscas.
Saludos.
__________________
Amar al mundo apasionadamente. |
#3
|
||||
|
||||
Hola.
No lo comentas en tu mensaje pero imagino que estarás usando FloatToStr(now) para trabajar con las fechas en modo numérico, esto te da un número con 10 decimales que si lo multiplicas por 10000000000 te da un número entero con lo que podrás trabajar. Espero que te sirva. Saludos |
#4
|
||||
|
||||
Cita:
Para mostrar más de 24 horas sin que te un resultado erróneo:
Ejemplo de llamada:
Y en cuanto a obtener los valores para usar en un ProgressBar, newtron ya te ha dado la solución. Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#5
|
|||
|
|||
Muchas gracias....
Voy a probar... Si... Me salian numeros flotantes Estoy usando SpinEdits indicando Dias, Horas y minutos, para calcular la duración total
Hay alguna forma de manejarlo mejor. Esto me funciona pero me parece complicado. Ya os comentare lo del porcentaje... |
#6
|
|||
|
|||
No me funciona....
No se que estoy haciendo mal.. uso directamente fechas en Tdatetime. perdon!!!!! DurTotal es Extended; No uso los dias en string directamente... Uso dias, horas, minutos en Spinedits y los convierto a mano en tdatetime con la formula anterior. A lo mejor no lo hago bien??? Lo curioso es que me funciona bien al comparar. Comienzo la captura InicioCap=hora actual) le añado la DurTotal(la que paso con los SpinEdits) y comparo Now>=DurTotal (esto dentro de un timer)
Última edición por alquimista fecha: 16-05-2011 a las 15:47:51. |
#7
|
||||
|
||||
Lo mejor es que utilices las funciones que te da Delphi, siempre que puedas.
Si cambias de version de Delphi, es más seguro que puedas compilar sin problemas. También si quieres pasar el código a FreePascal / Lazarus por ejemplo. Puede que cambie la representación interna de un TDateTime (parte entera días, parte decimal horas) a otra diferente. Si utilizas funciones, solo deberás reemplazar o reprogramar la función, si es que la nueva versión no lo ha hecho ya. Mira estas dos de la Unit DateUtils:
Deberás tirar los datos de los SpinEdit dentro de los parámetros correspondientes de la función y obtendrás un TDateTime. Última edición por duilioisola fecha: 16-05-2011 a las 15:56:58. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
porcentaje restante entre dos fechas - delphi | amo3k | OOP | 6 | 13-02-2010 16:08:54 |
mostrar un porcentaje o progressbar | rzf1983 | Varios | 8 | 25-10-2007 19:05:13 |
tiempo restante | fedeloko | Varios | 3 | 30-11-2004 18:49:51 |
mostrar porcentaje con CGauge del texto de un Edit | garth | C++ Builder | 3 | 26-03-2004 12:23:25 |
Matemáticas: Calcular porcentaje | DarkByte | Varios | 9 | 01-02-2004 17:42:08 |
|