segundos del calendario no están aumentando en bucle while

Phantom colmillos:

Estoy tratando de hacer la parada bucle while después de 5 segundos y medio (5,5), de modo que estoy usando la biblioteca calendario para obtener la segunda corriente del minuto y luego se incrementará 5.5 en la misma. Después de que el proceso se realiza un bucle de espera y vuelta para la hora actual sea igual a la variable guardada

Me di cuenta de que los segundos no están aumentando ... ¿Por qué?

Código:

package me.fangs.td;

import java.util.Calendar;

public class Main {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        double timeout = calendar.get(Calendar.SECOND) + 5.5;
        while((double) calendar.get(Calendar.SECOND) < timeout) {
            System.out.println((double) calendar.get(Calendar.SECOND));
            Thread.sleep(1000);
        }
    }
}
Vorox:

Yo no usaría la biblioteca del calendario, en su lugar me gustaría usar System.currentTimeMillis()

Aquí está un bucle while que termina después de 5,5 segundos:

long end = System.currentTimeMillis() + 5500;
while (System.currentTimeMillis() < end) {
  //Do something
}
//Exit after 5.5 seconds

Esta versión cuenta con la ventaja de que se puede cambiar la hora de finalización, mientras que el bucle se está ejecutando, cambiando el tiempo del bucle se ejecutará.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=334756&siteId=1
Recomendado
Clasificación