Urgente como verificar se data é valida

Bom Dia preciso de ajuda
tenho que fazer um programa que receba uma data no formato

11 15 1997

e verifica se a data é valida e escreva

November 15, 1997 is a Saturday

bom como faço para descobrir o dia da semana de uma determinada data?? se vai cair num sabado,segunda,etc

valeu quem puder me ajudar

Colega…dah uma lidinha aqui:

http://java.sun.com/j2se/1.3/docs/api/java/util/Date.html

[]'s

Valeu eu até ja tinha olhado
mas o problema que preciso disso meio urgente
será que nao tem algum exemplo com o codigo praticamente pronto?

ate mais

para ter uma base…tem que fazer a validacao do bissexto, do 29,30,31 em fevereiro…

import javax.swing.*;
import java.util.*;

public class Data implements java.io.Serializable{
	
	private int dia;
	private int mes;
	private int ano;
	private Calendar cal;
    private Date tempo;
    private Hashtable erros;
	
	
	public Data(){
		cal = new GregorianCalendar();
		tempo = new Date();
		cal.setTime(tempo);
		dia=cal.get(Calendar.DAY_OF_MONTH);
		mes=cal.get(Calendar.MONTH+1);
		ano=cal.get(Calendar.YEAR);
		erros=new Hashtable();
	}

/*	public Data(int _dia,int _mes,int _ano){
		dia=_dia;
		mes=_mes;
		ano=_ano;
	}
*/	
	public void validaDia(int _dia){
		if((_dia>=1)&&(_dia<=31)){
			dia=_dia;
		}		 
		else{						
			dia=1;
			incMes();
		}
	}
	
	public void validaMes(int _mes){
		if(_mes>=1 && _mes<=12){
			mes=_mes;
		}
		else{			
			mes=1;
			incAno();
		}
	}
	
	public void validaAno(int _ano){
		if(_ano>=1){
			ano=_ano;
		}
		else{			
			ano=1;
			
		}
	}	
	
	public void setDia(int _dia){		  
		validaDia(_dia);
	}
	
	public void setMes(int _mes){
		validaMes(_mes);
	}
	
	public void setAno(int _ano){
		validaAno(_ano);
	}
	
	public void setErros(String chave, String msg){
		erros.put(chave,msg);
	}
	
	public int getDia(){
		return dia;
	}
	
	public int getMes(){
		return mes;
	}
	
	public int getAno(){
		return ano;
	}
	public String getErros(String s){
	  	String msg=(String)erros.get(s);
	  	return (msg==null)?"":msg;
    }
	public void incDia() 
    { 
      setDia(getDia()+1);
    } 
     
    public void incMes() 
    {  
      setMes(getMes()+1);   
    } 

    public void incAno() 
    {  
       setAno(getAno()+1); 
    } 
	
	public String dataSistema(){       
       cal.setTime(tempo);
       setAno(cal.get(Calendar.YEAR));
       setMes(((cal.get(Calendar.MONTH))+1));
       setDia(cal.get(Calendar.DAY_OF_MONTH));  
       
       return dia+"/"+mes+"/"+ano;      
      
    } 
    public String dataBD(){
    	cal.setTime(tempo);
    	setAno(cal.get(Calendar.YEAR));
    	setMes(((cal.get(Calendar.MONTH))+1));
    	setDia(cal.get(Calendar.DAY_OF_MONTH));
    	return mes+"/"+dia+"/"+ano;
    }
    public String montaData(){
    	return dia+"/"+mes+"/"+ano;
    }
    
    public String horaSistema(){
    	return cal.get(Calendar.HOUR)+":"+cal.get(Calendar.MINUTE)+":"+cal.get(Calendar.SECOND);         
    }
    
   
}

Muito Obrigado valeu pela ajuda ,so que eu lendo uma determinada data precisa saber se esta data é segunda ,terça ,etc, tem algum metodo ou formula para calcular isso?

blz Sidinei,

Pra facilitar a sua vida vc pode transformar o seu texto “11 15 1997” para um objeto DATE.

    public Date getDate(String date) throws ParseException{ 
       DateFormat dateFormat = new SimpleDateFormat("dd MM yyyy"); 
        return dateFormat.parse( date ); 
    }

Eis o gabarito:

try
{
  GregorianCalendar cal = new GregorianCalendar(ano, mes, dia);
  cal.setLenient(false);
  cal.setFirstDayOfWeek(Calendar.SUNDAY);
  switch(cal.get(Calendar.DAY_OF_WEEK))
  {
    case Calendar.SUNDAY:
      ...
      break;
    case Calendar.MONDAY:
      ...
    ...
  }
}
catch(Exception e)
{
  // caraca! data inválida
  e.printStackTrace();
}