staroski 12 de dez. de 2019 1 like
public void avanceUmSegundo () {
segundos ++ ;
// o resto é com você
}
vuino18 12 de dez. de 2019
desse jeito o método estaria incompleto, pois a descrição diz que: um avanço nos segundos afetaria as horas, minutos e o am e o pm
staroski 12 de dez. de 2019
Por isso que tem o comentário no código dizendo “o resto é com você ” é só você implementar o restante da lógica.
Após qual segundo o minuto avança?
Após qual minuto a hora avança?
Após qual hora o pm é true?
vuino18 12 de dez. de 2019
assim está correto @staroski ?
staroski 12 de dez. de 2019
Não posta imagens, não dá pra copiar e compilar imagens.
Posta o código e formata ele com o botão </>
Testa seu relógio ué?
Exemplo de programa para testar:
public class Programa {
public static void main ( String [] args ) {
try {
Programa programa = new Programa ();
programa . executar ();
} catch ( Throwable t ) {
t . printStackTrace ();
}
}
public void executar () throws Exception {
Relogio relogio = new Relogio ();
for ( int i = 0 ; i <= 86400 ; i ++ ) {
System . out . println ( relogio );
relogio . avanceUmSegundo ();
}
}
}
vuino18 12 de dez. de 2019
ajudou bastante, obrigado🙏
Solucao aceita
staroski 12 de dez. de 2019 1 like
Existem N formas de implementar, podes fazer assim:
public class Relogio {
private int horas ;
private int minutos ;
private int segundos ;
private boolean pm ;
public void avanceUmSegundo () {
segundos ++ ;
if ( segundos == 60 ) {
segundos = 0 ;
minutos ++ ;
}
if ( minutos == 60 ) {
minutos = 0 ;
horas ++ ;
}
if ( horas == 12 ) {
horas = 0 ;
pm = ! pm ;
}
}
@Override
public String toString () {
return String . format ( "%02d:%02d:%02d %s" , horas , minutos , segundos , pm ? "PM" : "AM" );
}
}
Ou assim:
public class Relogio {
private int horas ;
private int minutos ;
private int segundos ;
private boolean pm ;
public void avanceUmSegundo () {
if (( segundos = ( segundos + 60 + 1 ) % 60 ) == 0 ) {
if (( minutos = ( minutos + 60 + 1 ) % 60 ) == 0 ) {
if (( horas = ( horas + 12 + 1 ) % 12 ) == 0 ) {
pm = ! pm ;
}
}
}
}
@Override
public String toString () {
return String . format ( "%02d:%02d:%02d %s" , horas , minutos , segundos , pm ? "PM" : "AM" );
}
}
Faça como sua criatividade mandar.