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
DianaPJ
Agosto 23, 2004, 10:23am
#2
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
DianaPJ
Agosto 23, 2004, 10:39am
#4
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();
}