Mi solución propuesta para el ejercicio CU00906C del tutorial de programación Java avanzado, comenten...
Supón que un partido de fútbol tiene una duración de 90 minutos. El minuto 1 se considera que abarca desde los 0 segundos hasta los 59 segundos. El minuto 2 abarca desde los 60 segundos hasta los 119 segundos. Así sucesivamente hasta el último minuto, que es el minuto 90 y abarca desde los 5340 segundos hasta los 5400 segundos. Crea un programa que pida al usuario el número de segundos
transcurridos y mediante el uso de alguna función de redondeo (floor, ceil ó round) de la clase Math muestre el minuto en que nos encontramos. El programa debe pedir valores de segundos hasta que el usuario decida terminar. Ejemplo de ejecución:
Introduzca valor de segundos: 32
El minuto es el 1
¿Otro valor (s/n)? s
Introduzca valor de segundos: 2595
El minuto es el 44
¿Otro valor (s/n)? n
public class Ejercicio06 {
public static void main(String[] args) {
MinutosPartido minutosPartido = new MinutosPartido();
minutosPartido.ObtenerDatos();
}
}
class MinutosPartido{
private Scanner entrada = new Scanner(System.in);
private int minuto;
private double segundos;
private char opcion=' ';
private char s='s';
private char n='n';
private boolean salida=true;
private boolean salida2=true;
public void ObtenerDatos(){
do {
salida2=true;
try {
System.out.print("Ingresa los segundos: ");
segundos = Double.parseDouble(entrada.next());
if (segundos<=0||segundos>=5400) {
System.err.println("Valor de los segundos debe estar entre 0 y 5400");
}else{
CalcularMinuto(segundos);
}
} catch (InputMismatchException | NumberFormatException e) {
System.err.println("Sólo números");
}
while (salida2) {
System.out.println("Deseas continuar? s/n:");
opcion=entrada.next().charAt(0);
if (opcion==n) {
salida=false;
salida2=false;
System.out.println("Fin!!!");
}
if(opcion==s) {
salida2=false;
}
}
} while (salida);
}
private void CalcularMinuto(double sec){
minuto = (int) (Math.ceil((sec+1)/60));
System.out.println("El minuto es: "+minuto);
}
}