una segundos programa para minutos horas equivalente días dias convertir cantidad calcular algoritmo java

segundos - Cómo convertir minutos a horas y minutos(hh: mm) en java



convertir una cantidad de segundos a su equivalente en días horas minutos y segundos java (16)

Necesito convertir minutos a horas y minutos en Java. Por ejemplo 260 debe ser 4:20. ¿Alguien puede ayudarme a cómo convertirlo?


tl; dr

Duration.ofMinutes( 260L ) .toString()

PT4H20M

... o ...

LocalTime.MIN.plus( Duration.ofMinutes( 260L ) ).toString()

04:20

Duration

Las clases java.time incluyen un par de clases para representar períodos de tiempo. La clase de Duration es de horas-minutos-segundos, y el Period es de años-meses-días.

Duration d = Duration.ofMinutes( 260L );

ISO 8601

El estándar ISO 8601 define formatos de texto para valores de fecha y hora. Durante períodos de tiempo no vinculados a la línea de tiempo, el formato estándar es PnYnMnDTnHnMnS . La P marca el comienzo, y la T separa los años-mes-días de las horas-minutos-segundos. Entonces una hora y media es PT1H30M .

Las clases java.time usan formatos ISO 8601 por defecto para analizar y generar cadenas. Las clases de Duration y Period usan este formato estándar particular. Así que simplemente llame a toString .

String output = d.toString();

PT4H20M

Para el formato alternativo, construya su propia cadena en Java 9 y posterior ( no en Java 8) con los métodos de la Duration::to…Part O vea esta Respuesta para usar expresiones regulares para manipular la cadena formateada ISO 8601.

LocalTime

Sugiero usar el formato estándar ISO 8601 en lugar del formato de reloj extremadamente ambiguo y confuso de 04:20 . Pero si insistes, puedes obtener este efecto pirateando con la clase LocalTime . Esto funciona si tu duración no es superior a 24 horas.

LocalTime hackUseOfClockAsDuration = LocalTime.MIN.plus( d ); String output = hackUseOfClockAsDuration.toString();

04:20

Acerca de java.time

El marco java.time está integrado en Java 8 y posterior. Estas clases suplantan a las problemáticas antiguas clases legacy fecha y hora como java.util.Date , Calendar y SimpleDateFormat .

El proyecto Joda-Time , ahora en modo de mantenimiento , aconseja la migración a las clases java.time .

Para obtener más información, consulte el Tutorial de Oracle . Y busque para obtener muchos ejemplos y explicaciones. La especificación es JSR 310 .

¿Dónde obtener las clases de java.time?

  • Java SE 8 y SE 9 y posteriores
    • Incorporado.
    • Parte de la API Java estándar con una implementación integrada.
    • Java 9 agrega algunas características y correcciones menores.
  • Java SE 6 y SE 7
    • Gran parte de la funcionalidad de java.time se transfiere a Java 6 y 7 en ThreeTen-Backport .
  • Android
    • El proyecto ThreeTenABP adapta ThreeTen-Backport (mencionado anteriormente) específicamente para Android.
    • Consulte Cómo utilizar ThreeTenABP ....

El proyecto ThreeTen-Extra amplía java.time con clases adicionales. Este proyecto es un terreno de prueba para posibles adiciones futuras a java.time. Puede encontrar algunas clases útiles aquí, como Interval , YearWeek , YearQuarter y more .


(En Kotlin) Si va a poner la respuesta en un TextView o algo, puede usar un recurso de cadena en su lugar:

<string name="time">%02d:%02d</string>

Y luego puede usar este recurso de Cadena para configurar el texto en tiempo de ejecución usando:

private fun setTime(time: Int) { val hour = time / 60 val min = time % 60 main_time.text = getString(R.string.time, hour, min) }


Dada la entrada en segundos puede transformar para formatear hh: mm: ss de esta manera:

int hours; int minutes; int seconds; int formatHelper; int input; //formatHelper maximum value is 24 hours represented in seconds formatHelper = input % (24*60*60); //for example let''s say format helper is 7500 seconds hours = formatHelper/60*60; minutes = formatHelper/60%60; seconds = formatHelper%60; //now operations above will give you result = 2hours : 5 minutes : 0 seconds;

He usado FormatHelper ya que la entrada puede ser más de 86 400 segundos, que es de 24 horas.

Si desea un tiempo total de su entrada representado por hh: mm: ss, puede evitar formatHelper.

Espero que ayude.


En Swift

func timeStringFrom(minutes:Double) -> String { return "/(Int(minutes/60)):/(Int(minutes) % 60)" }



Prueba este código:

import java.util.Scanner; public class BasicElement { public static void main(String[] args){ Scanner input = new Scanner(System.in); int hours; System.out.print("Enter the hours to convert:"); hours =input.nextInt(); int d=hours/24; int m=hours%24; System.out.println(d+"days"+" "+m+"hours"); } }


Se puede hacer así

int totalMinutesInt = Integer.valueOf(totalMinutes.toString()); int hours = totalMinutesInt / 60; int hoursToDisplay = hours; if (hours > 12) { hoursToDisplay = hoursToDisplay - 12; } int minutesToDisplay = totalMinutesInt - (hours * 60); String minToDisplay = null; if(minutesToDisplay == 0 ) minToDisplay = "00"; else if( minutesToDisplay < 10 ) minToDisplay = "0" + minutesToDisplay ; else minToDisplay = "" + minutesToDisplay ; String displayValue = hoursToDisplay + ":" + minToDisplay; if (hours < 12) displayValue = displayValue + " AM"; else displayValue = displayValue + " PM"; return displayValue; } catch (Exception e) { LOGGER.error("Error while converting currency."); } return totalMinutes.toString();


También puede usar la clase TimeUnit . Podrías definir

private static final String FORMAT = "%02d:%02d:%02d"; puede tener un método como:

public static String parseTime(long milliseconds) { return String.format(FORMAT, TimeUnit.MILLISECONDS.toHours(milliseconds), TimeUnit.MILLISECONDS.toMinutes(milliseconds) - TimeUnit.HOURS.toMinutes( TimeUnit.MILLISECONDS.toHours(milliseconds)), TimeUnit.MILLISECONDS.toSeconds(milliseconds) - TimeUnit.MINUTES.toSeconds( TimeUnit.MILLISECONDS.toMinutes(milliseconds))); }


Use java.text.SimpleDateFormat para convertir minutos en horas y minutos

SimpleDateFormat sdf = new SimpleDateFormat("mm"); try { Date dt = sdf.parse("90"); sdf = new SimpleDateFormat("HH:mm"); System.out.println(sdf.format(dt)); } catch (ParseException e) { e.printStackTrace(); }


Uso esta función para mis proyectos:

public static String minuteToTime(int minute) { int hour = minute / 60; minute %= 60; String p = "AM"; if (hour >= 12) { hour %= 12; p = "PM"; } if (hour == 0) { hour = 12; } return (hour < 10 ? "0" + hour : hour) + ":" + (minute < 10 ? "0" + minute : minute) + " " + p; }


calcule los minutos usando este código:

long difference = new Date().getTime() - user.getUpdatedDate().getTime(); int minutes = (int) TimeUnit.MILLISECONDS.toMinutes(difference);


se te olvida el piso en tu respuesta:

int hours = Math.floor(t / 60); int minutes = t % 60; System.out.printf("%d:%02d", hours, minutes);

sin él, su resultado es falso en ciertos casos, como por ejemplo:

t = 525 hours = 8.75

entonces sin Math.floor tenemos este resultado: 9h45 en lugar de 8h45.


Si tu tiempo está en una variable llamada t

int hours = t / 60; //since both are ints, you get an int int minutes = t % 60; System.out.printf("%d:%02d", hours, minutes);

No podría ser más fácil


import java.util.Scanner; public class Time{ public static void main(String[]args){ int totMins=0; int hours=0; int mins=0; Scanner sc= new Scanner(System.in); System.out.println("Enter the time in mins: "); totMins= sc.nextInt(); hours=(int)(totMins/60); mins =(int)(totMins%60); System.out.printf("%d:%d",hours,mins); } }


int mHours = t / 60; //since both are ints, you get an int int mMinutes = t % 60; System.out.printf("%d:%02d", "" +mHours, "" +mMinutes);


long d1Ms=asa.getTime(); long d2Ms=asa2.getTime(); long minute = Math.abs((d1Ms-d2Ms)/60000); int Hours = (int)minute/60; int Minutes = (int)minute%60; stUr.setText(Hours+":"+Minutes);