Será que me podem ajudar...Java Date

Criei a seguinte Classe,

import java.lang.Object;
import java.util.*;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;

/**

*/
public class Atletas
{
private int nParticipante;
private String peso;
private String altura;
private String gSanguinio;
private String modalidade;
private String sexo;
private String nome;
private Date dataDeNascimento;

/**
 * Constructor for objects of class Atletas
 */
public Atletas (int número, String nome, String peso, String altura, String gS, String mD, String sexo, String dataDeN)  throws ParseException
{

    // initialise instance variables
      nParticipante = número ;
    this.nome = nome;
    
    this.dataDeNascimento = parse(dataDeN);
    this.peso = peso;
    this.altura = altura;
    this.gSanguinio = gS;
    this.modalidade = mD;
    this.sexo = sexo;
}  

public Date parse(String dataDeN) throws ParseException

 {
    
     DateFormat df = new SimpleDateFormat("dd-mm-yyyy");
     Date dn = df.parse(dataDeN);
     return dn;
 }

}

O método criado para converter a String em data julgo que não está correcta, podem ajudar?
Além disso nessecito saber a partir da data de nascimento qual é a idade do atleta, e numa classe assima saber (equipas) onde existe uma arrylist de atletas, preciso de saber qual a média de idades dos atletas, será que existe um metodo que me ajude nisto? Obrigado

Eu acho que vc vai conseguir isso usando o Calendar.

[quote=Jorge_gama]Criei a seguinte Classe,



public Date parse(String dataDeN) throws ParseException

     {
        
         DateFormat df = new SimpleDateFormat("dd-mm-yyyy");
         Date dn = df.parse(dataDeN);
         return dn;
     }
     
     
}

[/quote]

Use a tag code. O seu codigo de parse não tem problema algum. Acontece apenas que a string passada tem que estar no formato dd-mm-yyyy. Se não estiver não vai dar certo.

Para saber a idade obtenha o ano do aniversário do atleta e faça a conta com ano corrente.
Vc pode usar o método getYear de date (embora esteja deprecated… )


 Date agora = new Date();
 
 int anos = agora.getYear()  - datanascimento.getYear();
 if ( agora.compareTo(datanascimento)<0){
         return anos-1;
 }
 return anos;