java - minutos - milisegundos a días
formula milisegundos a minutos (4)
Investigué un poco, pero aún no puedo encontrar la manera de obtener los días ... Esto es lo que obtuve:
int seconds = (int) (milliseconds / 1000) % 60 ;
int minutes = (int) ((milliseconds / (1000*60)) % 60);
int hours = (int) ((milliseconds / (1000*60*60)) % 24);
int days = ????? ;
Por favor ayuda, apesta en matemáticas, gracias.
Para casos simples como este, se debe usar TimeUnit . El uso de TimeUnit es un poco más explícito sobre lo que se está representando y también es mucho más fácil de leer y escribir en comparación con hacer todos los cálculos aritméticos explícitamente. Por ejemplo, para calcular el número de días de milisegundos, la siguiente declaración funcionaría:
long days = TimeUnit.MILLISECONDS.toDays(milliseconds);
Para los casos más avanzados, donde las duraciones de grano más fino deben representarse en el contexto del trabajo con el tiempo, se debe utilizar una API de fecha / hora que lo abarque todo y moderna. Para JDK8 +, ahora se incluye java.time (aquí están los tutorials y javadocs ). Para versiones anteriores de Java joda-time es una alternativa sólida.
Si no tiene otro intervalo de tiempo mayor que días:
int days = (int) (milliseconds / (1000*60*60*24));
Si tienes semanas también:
int days = (int) ((milliseconds / (1000*60*60*24)) % 7);
int weeks = (int) (milliseconds / (1000*60*60*24*7));
Probablemente sea mejor evitar usar meses y años si es posible, ya que no tienen una longitud fija bien definida. Estrictamente hablando, tampoco lo hacen los días: el horario de verano significa que los días pueden tener una duración que no es de 24 horas.
int days = (int) (milliseconds / 86 400 000 )
public static final long SECOND_IN_MILLIS = 1000;
public static final long MINUTE_IN_MILLIS = SECOND_IN_MILLIS * 60;
public static final long HOUR_IN_MILLIS = MINUTE_IN_MILLIS * 60;
public static final long DAY_IN_MILLIS = HOUR_IN_MILLIS * 24;
public static final long WEEK_IN_MILLIS = DAY_IN_MILLIS * 7;
Podrías lanzar int, pero yo recomendaría usar long .