función sueño alternativa - página 4

 

Simón,


10 = ( (10000+10) - (10000) );


La diferencia es diez.


Gracias

 
WhooDoo22:

Simón,

10 = ( (10000+10) - (10000) );

La diferencia es diez.

No. Bueno, podría ser, pero la razón que has mostrado arriba muestra que tu razonamiento es erróneo. Necesitas leer la documentación de nuevo TimeSeconds() y cuando hayas leído esto tambiénTimeHour() y esteTimeMinute() entonces piensa en una fecha de 12:33:21 y lo que cada una de estas funciones devolverá para esa fecha.
 

Simón,

¿Estás diciendo que mi formato de '10' es incorrecto? Si es así, podría hacer un ajuste rápido de '10' a '00:00:10'.

¿Qué opinas de esto?


Gracias.

 
WhooDoo22:

Simón,

¿Estás diciendo que mi formato de '10' es incorrecto? Si es así, podría hacer un ajuste rápido de '10' a '00:00:10'.

No. ¿Has leído la documentación que he enlazado?

Tomemos mi ejemplo, 12:33:21

TimeHour() "Devuelve la hora para el tiempo especificado", así que devolverá12 para una fecha de 12:33:21

TimeMinute()"Devuelve el minuto para la hora especificada", por lo que devolverá33 para una fecha de 12:33: 21

TimeSeconds() "Devuelve la cantidad de segundos transcurridos desde el comienzo del minuto para la hora especificada", por lo que devolverá21 para una fecha de 12: 33:21

¿Sabes lo que es un datetime? ¿Sabes cuál es la relevancia de 1970? bien.

CiertaHora = 10000¿cuándo es esto? averigüémoslo, 10000 segundos son 2.777 horas así que son las 2 am, 0.77777 horas son 46.6666 minutos, así que son 46 minutos después de las 2 am, y 0.6666 minutos son 40 segundos. Así que una fecha de 10000 es el 1 de enero de 1970 01:46:40 y 10000 + 10 es 01:46:50 así que para este ejemplo tu respuesta de 10 era correcta, pero por la razón equivocada.

Si mi ejemplo fuera 10000 y 10000 + 30 tu respuesta habría sido 30, pero estas fechas habrían sido 1 de enero de 1970 01:46:40 y 01:47:10, la respuesta correcta habría sido 10 - 30 = -20 no 30

 

Simon,

¿has leído la documentación que he enlazado?

Sí.


¿Sabes lo que es un datetime?

datetime es un tipo de dato.


¿Sabes cuál es la relevancia de 1970?

Supongo que en este caso mil novecientos setenta segundos ?


tu respuesta de 10 era correcta, pero por la razón equivocada.

Creo que entiendo a Simon. Has aclarado tu punto de vista. Gracias por tu explicación.


Además, creo que tu explicación me ha permitido descubrir una solución de no poder pausar el tiempo en tester a poder pausar el tiempo en tester.

Posiblemente pueda utilizar un ciclo para ejecutar en un tiempo predeterminado. Cuando el tiempo se agota en un tiempo menor elegido, el tiempo menor elegido se restablecerá y el ciclo continuará interminablemente A MENOS QUE, este tiempo se siga ejecutando basado en ticks. Los ticks se están convirtiendo en una verdadera molestia para mí.


Tal vez pueda encontrar una manera de iniciar el EA sin esperar a los ticks. Puedo utilizar una condición 'if' para activar la función start().

¿Qué opinas de esto?


He añadido este código en SRC

bool start;
   
if(start==false)start();

a un EA y recibí un error llamado "stack overflow" del diario en tester.


Gracias

 
WhooDoo22:

¿Sabes lo que es un datetime?

datetime es un tipo de dato.


¿Sabes cuál es la relevancia de 1970?

¿Supongo que en este caso mil novecientos setenta segundos?


WhooDoo22:


Posiblemente pueda utilizar un ciclo que se ejecute en un tiempo predeterminado. Cuando el tiempo se agota en un tiempo menor elegido, el tiempo menor elegido se restablecerá y el ciclo continuará interminablemente A MENOS QUE, este tiempo se siga ejecutando basado en ticks. Los ticks se están convirtiendo en una verdadera molestia para mí.


De estas declaraciones se desprende que o bien no estás leyendo lo que está escrito para ayudarte o que simplemente no puedes entenderlo. Como no has dado ninguna indicación de que no eres capaz de entender sólo puedo concluir que no estás tratando de comprender lo que está escrito. Siendo ese el caso no voy a tomar más de tu tiempo tratando de ayudar.