Java - ¿Como puedo colocar formato AM y PM en un reloj por consola?

 
Vista:
sin imagen de perfil
Val: 5
Ha aumentado su posición en 6 puestos en Java (en relación al último mes)
Gráfica de Java

¿Como puedo colocar formato AM y PM en un reloj por consola?

Publicado por Diego André (2 intervenciones) el 20/08/2019 05:07:17
Hola, quisiera que me puedan ayudar a poner formato AM y PM a un reloj que sale por consola en java, tengo un codigo el cual estoy usando, pero no se como podria hacer para implementar ese formato, podrian ayudarme porfavor? Mi codigo esta en dos clases, se los dejo a continuación

PRINCIPAL

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package logic;
 
import java.util.Scanner;
 
/**
 *
 * @author DIEGO_CASASOLA
 */
public class consola {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws InterruptedException {
                //construir objeto
        Scanner teclado = new Scanner(System.in);
 
        Reloj bolivia = new Reloj();
        Reloj japon = new Reloj();
        bolivia.ponerHora(12, 59, 57);
        japon.ponerHora(10, 59, 56);
 
        String resultado = bolivia.verHora();
 
        System.out.println(" Bolivia" + "        Japón");
        for (;;) {
            System.out.println(bolivia.avanzar() + "   |   " + japon.avanzar());
            Thread.sleep(1000);
        }
    }
}

CLASE RELOJ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
package logic;
 
/**
 *
 * @author DIEGO_CASASOLA
 */
public class Reloj {
 
    //atributos
    private int hora;
    private int minutos;
    private int segundos;
    private boolean formato12 = false;
 
    //metodos o funciones
    /*getters es para que me de información
        setters es para colocar información
     */
    public void ponerHora(int hora, int minutos, int segundos) {
        /* this. = se usa para hacer saber que es un atributo 
        y confundir con los nombres que se asignara a los 
        atributos
         */
        this.hora = hora;
        this.minutos = minutos;
        this.segundos = segundos;
    }
 
    public String ponerAlarma(int hora, int minutos) {
        return "";
 
    }
 
    public String avanzar() {
 
        this.segundos++;
        if (segundos == 60) {
            this.segundos = 0;
            this.minutos++;
        }
 
        if (minutos == 60) {
            this.minutos = 0;
            this.hora++;
        }
        if (hora == 24) {
            this.hora = 0;
        }
        return verHora();
    }
 
    public String verHora() {
 
 
        String hora1 = "";
        if (hora < 10) {
            hora1 = "0" + hora;
        } else {
        hora1 = "" + hora;
        }
        String minuto1 = "";
        if (minutos < 10 || minutos == 0) {
            minuto1 = "0" + minutos;
        } else {
        minuto1 = "" + minutos;
        }
        String segundos1 = "";
        if (segundos < 10 || segundos ==0) {
            segundos1 = "0" + segundos;
        } else {
        segundos1 = "" + segundos;
        }
        String aux = hora1 + ":" + minuto1 + ":" + segundos1;
        return aux;
 
    }
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 33
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

¿Como puedo colocar formato AM y PM en un reloj por consola?

Publicado por frank (15 intervenciones) el 20/08/2019 13:45:24
A mi me parece que esto no te ayuda mucho, creo que estás pidiendo que te hagamos el ejercicio pero iba a preguntar algo sobre mi codigo y resulta que es un ejercicio horario y si al final lo entiendes, lo entiendes, así que te lo escribo, me has ayudado a que le de un par de vueltas más.
: )

tengo un tipo enumerado para distinguir entre am y fm.

1
public enum Meridiano { AM, PM}

una variable meridiano como atributo de la clase:
1
Meridiano mer;

y después en un método de la clase que incrementa los minutos del reloj tengo esto:

1
2
3
if ( hora > 12 ){
hora = 1;
mer = mer == Meridiano.AM ? Meridiano.PM : Meridiano.AM;

esa última sintaxis funciona tal que la variable mer, inicializada en el constructor es igual a: (mer = ....)
1
2
3
4
if (mer == Meridiano.AM){
mer = Meridiano.PM
} else {
mer = Meridiano.AM;

entre hoy y mañana veré otra vez este hilo, si no lo has entendido dimelo y te puedo copiar el codi
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 5
Ha aumentado su posición en 6 puestos en Java (en relación al último mes)
Gráfica de Java

¿Como puedo colocar formato AM y PM en un reloj por consola?

Publicado por Diego André (2 intervenciones) el 20/08/2019 17:57:05
Puedes explicármelo un poco mas por favor? no le he llegado a entender del todo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jesús
Val: 36
Ha aumentado su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

¿Como puedo colocar formato AM y PM en un reloj por consola?

Publicado por Jesús (1 intervención) el 20/08/2019 21:19:40
ya veo lo que intestas hacer, pero fijate que tienes una variable "formato12" que no has usado, asi que todo depende,
puedes agregar una variable String que contenga el AM o el PM, digamos que comienzas asignandole PM
la variable debe ser global y te recomendaria usarla en la funcion avanzar( ) cerca de el condicional de hora, que en este caso funcionaria mejor como 12 y no como 24, comenzando despues como 1 pm o 1 am

1
2
3
if (hora == 12) {
    this.hora = 1;
}

asi que, suponiendo que tienes el condicional en el formato 12 horas, cada vez que el reloj pase por 12 se cambiaria este formato

1
2
3
4
5
6
7
8
if (hora == 12) {
    this.hora = 1;
    if (periodo=="AM"){
        periodo = "PM";
    } else {
        periodo = "AM";
    }
}


mas adelante tendrias que agregar a la funcion verHora( ), esta variable al final en el retorno, como una cadena normal
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 33
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

¿Como puedo colocar formato AM y PM en un reloj por consola?

Publicado por frank (15 intervenciones) el 21/08/2019 11:10:49
1
2
3
4
5
6
7
if( hora > 12 ){
hora = hora - 12;
String x = "PM";
systemoutprintln("hora" + "minutos" + x);
} else{
String x = "AM";
systemoutprintln("hora" + "minutos" + x)

suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar