seguinte estou com uma dúvida… escrevi um código simples que recebe o dia da semana (1 - domingo, 2 - segunda, 3 - terça, …), a semana do ano (1 à 52) e o ano, e com isso deve me retornar a data do dia (DD/MM/AAAA), porém para alguns dá certo outros não… vejam abaixo:
dia…semana… ano … resultado
1 1 2007 07/01/2007
2 1 2007 01/01/2007
3 1 2007 02/01/2007
1 1 2006 01/01/2006
2 1 2006 26/12/2005
3 1 2006 27/12/2005
não sei porque ocorre isto, tenho q tratar a data?? segue o código abaixo:
[code]
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.SimpleTimeZone;
public class Informa_Data {
public static int temp_semana;
public static int temp_ano;
public static int temp_diaSemana;
public static void main(String args[]) {
// Cria uma TIME ZONE correspondente ao horário de Brasília
SimpleTimeZone pdt = new SimpleTimeZone(-3 * 60 * 60 * 1000, "GMT-3:00");
// Seta as regras para o horário de verão Brasileiro
// Começando no primeiro domingo após o dia primeiro
pdt.setStartRule(Calendar.NOVEMBER, 1, Calendar.SUNDAY, 0);
// Terminando no último domingo do mês de Fevereiro
pdt.setEndRule(Calendar.FEBRUARY, -1, Calendar.SUNDAY, 0);
// create a GregorianCalendar with the Pacific Daylight time zone
// and the current date and time
Calendar calendar = new GregorianCalendar(pdt);
temp_diaSemana = Console.readInt("Insira o dia da semana: ");
temp_semana = Console.readInt("Informe a semana: ");
temp_ano = Console.readInt("Informe o ano: ");
calendar.set(Calendar.YEAR, temp_ano);
calendar.set(Calendar.WEEK_OF_YEAR, temp_semana);
calendar.set(Calendar.DAY_OF_WEEK, temp_diaSemana);
String ret = "Data: " + calendar.get(Calendar.DAY_OF_MONTH) + "/"
+ (calendar.get(Calendar.MONTH) + 1) + "/"
+ calendar.get(Calendar.YEAR) + " - Semana: "
+ calendar.get(Calendar.WEEK_OF_YEAR) + " - Dia Semana: "
+ calendar.get(Calendar.DAY_OF_WEEK) + " - Ano: "
+ calendar.get(Calendar.YEAR);
System.out.println(ret);
String formato = "dd/MM/yyyy";
SimpleDateFormat formatter = new SimpleDateFormat(formato);
System.out.println("A data formatada é: "
+ formatter.format(calendar.getTime()));
}
}[/code]