Crear método para el formato de tiempo de 24 horas
Estoy intentando crear un método en C# con dos argumentos de tipo int.
public void Time(int hours, int minutes)
que cumpla con todos los siguientes casos de prueba:
Time(11, 7), devuelve: "11:07"
Time(24, 0), devuelve: "00:00"
Time(26, 0), devuelve: "02:00"
Time(0, 160), devuelve: "02:40" (ya que 160 minutos equivalen a 2 horas y 40 minutos)
Time(-1, 0), devuelve: "23:00" (número negativo - en sentido contrario a las agujas del reloj)
Time(1, -40), devuelve: "00:20"
Time(-25, -160), devuelve: "20:20"
Mi intento inadecuado fue el siguiente:
if (hours > 23)
{
hours %= 24;
}
if (minutes > 59)
{
minutes %= 60;
}
Pero esto solo satisface las primeras tres condiciones.
davy.ai
Para crear un método en C# que cumpla con todos los casos de prueba dados para convertir horas y minutos a un formato de tiempo de cadena, podemos utilizar el siguiente algoritmo:
Aquí está la implementación del código de este método:
“`c#
public string Time(int hours, int minutes)
{
// Manejo de valores negativos
if (hours < 0) hours = 24 + (hours % 24);
if (minutes < 0)
{
minutes = 60 – (Math.Abs(minutes) % 60);
if (minutes == 60)
{
minutes = 0;
hours–;
}
}
}
“`
Este método maneja todos los casos de prueba dados correctamente y es más robusto que el intento inicial.