Jump to content
bushin

return

Recommended Posts

bushin

Boa noite,

já googlei e nada :P não consigo chamar esta função no main().

a classe onde esta este código é XPTO.

public String toString() {
        StringBuilder result = new StringBuilder();
                  
        try {
         result.append(DiferencaEntreDatas("10/10/2000", "12/10/2000"));
      } catch (ParseException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
      }
       return result.toString();

--

para a poder chamar no main(), faço XPTO.toString();

abc,

bushin

Share this post


Link to post
Share on other sites
daj

Olá,

sendo um método de instância, quanto muito fazes

new XPTO().toString();

e não

XPTO.toString();

Share this post


Link to post
Share on other sites
bushin

continua a não dar!

se eu colocar no main(): //System.out.println(Xpto.DiferencaEntreDatas("10/10/2000", "12/10/2000"));

funciona.

Xpto é outro ficheiro que contém a classe Xpto:

com os métodos:

   public String toString() {
        StringBuilder result = new StringBuilder();
                  
        try {
         result.append(DiferencaEntreDatas("10/10/2000", "12/10/2000"));
      } catch (ParseException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
      }
       return result.toString();

    public static int difDatas(Date dt1, Date dt2) {  
        long tempo1 = dt1.getTime();  
        long tempo2 = dt2.getTime();  
        long difTempo = tempo2 - tempo1;  
        return (int) ((difTempo + 60L * 60 * 1000) / (24L * 60 * 60 * 1000)) + 1;  
    }  
  
    //Pede duas datas e calcula a diferença em dias 
    public static int DiferencaEntreDatas(String data1, String data2) throws ParseException{  
        GregorianCalendar ini = new GregorianCalendar();  
        GregorianCalendar fim = new GregorianCalendar();  
        SimpleDateFormat sdf = new SimpleDateFormat ("dd/MM/yyyy");  
        ini.setTime(sdf.parse(data1));  
        fim.setTime(sdf.parse(data2));  
        long dt1 = ini.getTimeInMillis();  
        long dt2 = fim.getTimeInMillis();  
        return (int) (((dt2 - dt1) / 86400000)+1);  
    }

Share this post


Link to post
Share on other sites
Baderous

No 1º caso estás a invocar o método de classe DiferencaEntreDatas, fazendo uma chamada a esse método através da classe, sendo o resultado apresentado no ecrã através do println. No caso que tu queres resolver, tens é de invocar o método de instância toString sobre uma instância da classe XPTO, e não sobre a própria classe.

Share this post


Link to post
Share on other sites
bushin

penso que entendi, não dá erro de compilação mas o resultado teima em não aparecer,

Xpto m= new Xpto();

m.toString();

Share this post


Link to post
Share on other sites
daj

Bem, se o problema é apenas esse, então:

Xpto m = new Xpto();
System.out.println(m.toString());

Hora tardia?  :P

Edit:

E já agora, que é a mesma coisa:

Xpto m = new Xpto();
System.out.println(m);

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.