Métodos...!

Bem estou fazendo um programa que le duas horas e subtrai o resultado
vo deixar o código abaixo para ficar mais fácil a compreensão:

import javax.swing.*;

public class HORA
{
	public int hora,seg,min,hora1,min1,seg1;
	long hora2,min2,seg2,t1,t2,td;
	boolean chave;
	public static void main(String args[])
	{
		
		HORA entrada = new HORA();
		entrada.cadastrar();
		entrada.subtrair();
		entrada.imprimir();
	}
	
	public void cadastrar()
	{
		
		do
		hora= Integer.parseInt(JOptionPane.showInputDialog("Dígite as Horas"));
		while(hora<0||hora>=24);
 
		do
		min=Integer.parseInt(JOptionPane.showInputDialog("Dígite os Minutos"));
		while(min<0||min>=60);
	 
		do
	     seg=Integer.parseInt(JOptionPane.showInputDialog("Dígite os Segundos"));
	    while(seg<0||seg>=60);
	   
	}
	
	//*********************************************
	
	public void subtrair()
	{
		
		int hora1,min1,seg1,flag;
	
		do
		flag=Integer.parseInt(JOptionPane.showInputDialog(null,"Deseja Subtrair ?\nDígite 1 para sim\nDígite 2 para não"));
		while(flag!=1&&flag!=2);
		
		 
		if(flag==1)
		{
		   chave=true;
		   do
			hora1= Integer.parseInt(JOptionPane.showInputDialog("Dígite as Horas que você quer subtrair"));
		   while(hora1<0||hora1>=24);
		 
		   do
		     min1=Integer.parseInt(JOptionPane.showInputDialog("Dígite os Minutos que você quer subtrair"));
		   while(min1<0||min1>=60);
		  
		   do
		     seg1=Integer.parseInt(JOptionPane.showInputDialog("Dígite os Segundos que você quer subtrair"));
		   while(seg1<0||seg1>=60);
		   
		   t1=hora*3600+min+60+seg;
		   t2=hora1*3600+min1+60+seg1;
		   if(t1>t2)
		   	 td=t1-t2;
		   else
		    td=t2-t1;
		    
		    hora2=td/3600;
		    min2=(td%3600)/60;
		    seg2=(td%3600)%60;
		   
		   
		}
	}
	//************************************************
	public void imprimir()
	{
		String saida;
		JTextArea texto = new JTextArea();
		saida="Programa hora \nA hora dígitada:\n";
		saida+=hora+":"+min+":"+seg+"\n";
		
		texto.setText(saida);
		JOptionPane.showMessageDialog(null,texto);
		
	}
}

Gostaria de saber como eu faço para passar dados de uma função para outra…??? igual na função subtrair que eu fiz… eu gostaria de passar os dados da subtração das horas para função imprimir as variaveis globais hora2,min2,seg2 receberam valores da a partir dos calculos feitos mais quando vo imprimir não da certo alguém tem alguma explicação…?

E ae edymrex!!

vc esta atribuindo o resultado dos calculos para as variaveis hora2, min2 e seg2 … mas manda imprimir hora, min, seg, aco q no calculo dos minutos vc se enganou tambem, o correto seria multiplicar por 60 pra transformar tudo em segundos

         t1=hora*3600+min+60+seg;
         t2=hora1*3600+min1+60+seg1;
         
         if(t1>t2)
             td=t1-t2;
         else
        	 td=t2-t1;
         
          hora2=td/3600;
          min2=(td%3600)/60;
          seg2=(td%3600)%60;
         t1 = (hora * 3600) + (min * 60) + seg;
         t2 = (hora1 * 3600) + (min1 * 60) + seg1;
         
         if(t1 > t2)
                 td = t1 - t2;
         else
        	 td = t2 - t1;
         
          hora = (int) (td / 3600);
          min = (int) ((td % 3600) / 60);
          seg = (int) ((td % 3600) % 60);

Valew Fierodd você me mostrou tudo que eu estava errando…!
até a próxima…!