import java.text.DecimalFormat;
import javax.swing.*;

public class tempo
{
	private int Horas;
	private int Mins;
	private int Segs;
	
	public tempo()
	{
		setHoras(0);
		setMins(0);
		setSegs(0);
	}
	
	public tempo(int _horas, int _mins, int _segs)
	{
		setHoras(_horas);
		setMins(_mins);
		setSegs(_segs);
	}
	
	public void solicita()
	{
		String temp, temp2, temp3;
		temp = JOptionPane.showInputDialog("Digite as horas");
		temp2 = JOptionPane.showInputDialog("Digite os minutos");
		temp3 = JOptionPane.showInputDialog("Digite os segundos");
		setHoras(Integer.parseInt(temp));
		setMins(Integer.parseInt(temp2));
		setSegs(Integer.parseInt(temp3));
	}
	
	public void imprimir()
	{
		DecimalFormat duascasas = new DecimalFormat("00");
		JOptionPane.showMessageDialog(null, "As horas sao: "+duascasas.format(getHoras())+":"+duascasas.format(getMins())+":"+duascasas.format(getSegs()));
	}
	
	public void setHoras(int _horas)
	{
		if (_horas >= 0)
			Horas = _horas;
		else
			JOptionPane.showMessageDialog(null, "ERRO, valor menor q zero!");
	}
	
	public void setMins(int _mins)
	{
		if (_mins >= 0)
			Mins = _mins;
		else
			JOptionPane.showMessageDialog(null, "ERRO, valor menor q zero!");
	}
	
	public void setSegs(int _segs)
	{
		if(_segs >= 0)
			Segs = _segs;
		else
			JOptionPane.showMessageDialog(null, "ERRO, valor menor q zero!");
	}
	
	public int getHoras()
	{
		return Horas;
	}
	
	public int getMins()
	{
		return Mins;
	}
	
	public int getSegs()
	{
		return Segs;
	}
	
	public void incrHoras()
	{
		setHoras(getHoras() + 1);
	}
	
	public void incrMins()
	{
		setMins(getMins() + 1);
	}
	
	public void incrSegs()
	{
		setSegs(getSegs() + 1);
	}
	
	public void decrHoras()
	{
		setHoras(getHoras() - 1);
	}
	
	public void decrMins()
	{
		setMins(getMins() - 1);
	}
	
	public void decrSegs()
	{
		setSegs(getSegs() - 1);
	}
	
	public String literalHoras()
	{
		DecimalFormat c = new DecimalFormat("00");
 		String temp;
		temp = "Horas em String sao "+c.format(getHoras())+":"+c.format(getMins())+":"+c.format(getSegs());
		return temp;
	}
	

	
	
	
	public void menu()
		{
			int opcao = -1;
			while (opcao != 10)
			{
				String temp;
				temp = JOptionPane.showInputDialog(" >>> Menu <<< \n1 - Leitura \n2 - Imprimir \n3 - Incremento Horas \n4 - Incrementa Minutos \n5 - Incrementa Segundos \n6 - Decrementa Horas \n7 - Decrementa Minutos \n8 - Decrementa Segundos \n9 - Literal \n10 - Sair");
				opcao = Integer.parseInt(temp);
				
				switch ( opcao )
				{
					case 1 : solicita();
					break;
					case 2 : imprimir();
					break;
					case 3 : incrHoras();
					break;
					case 4 : incrMins();
					break;
					case 5 : incrSegs();
					break;
					case 6 : decrHoras();
					break;
					case 7 : decrMins();
					break;
					case 8 : decrSegs();
					break;
					case 9 : JOptionPane.showMessageDialog(null, literalHoras());
					break;
				} // fim switch
			} //fim while
		} // fim menu
				
				
				
				
				
				
//a) Crie um metodo para adicionar dois objetos da classe tempo passados como argumentos.  
	public tempo  soma(tempo obj1, tempo obj2){
	
		
		int horas = obj1.getHoras() + obj2.getHoras();
		int minutos = obj1.getHoras() + obj2.getHoras();
		int segundos = obj1.getHoras() + obj2.getHoras();
		
		return (horas, minutos, segundos);
	} // fim
	









// b) Crie um metodo q subtraia duas horas e retorne o numero de segundos entre elas.
// a funcao recebe dois objetos da classe tempo passados como argumentos.

				
				
} //fim class
		
		
		
		
		// 	tirar duvida com prof. ->	return ( (Horas == 12 || Horas == 0) ? 12 : Horas % 12 ) +":"+c.format(Mins) +":"+ c.format(Segs) + (Horas < 12 ? "AM" : "PM");
