Calendar.get(Calendar.WEEK_OF_YEAR)

2 respostas
Marques

Lista,

Qdo executo o trecho abaixo, ele devolve a semana do ano + 1. Ou seja,s e a data estiver na semana 44 ele devolve 45. É assim mesmo, ou seja, para obter a semana eu tenho que subtrair 1 ou estou fazendo algo errado?

Muito obrigado,

Marques Date data = viagem.getEtaPortoOrigem(); Calendar calendar = Calendar.getInstance(); calendar.setTime(data); int semanaViagem = calendar.get(Calendar.WEEK_OF_YEAR); System.out.println("semana" + semanaViagem);

2 Respostas

T

Pode ser que em seu Locale o primeiro dia da semana seja segunda :P. Veja se é por isso.

import java.text.*;
import java.util.*;
class TestCalendarWeekOfYear {
    public static void main(String[] args) throws ParseException {
        
        Calendar cal = Calendar.getInstance();
        cal.setFirstDayOfWeek (Calendar.SUNDAY); //por algum motivo estava como 2 = MONDAY (?). Não estamos na Alemanha!
        DateFormat df = new SimpleDateFormat ("dd/MM/yyyy");
        Date dt = df.parse ("01/01/2006");
        cal.setTime (dt);
        System.out.println("Semana = " + cal.get(Calendar.WEEK_OF_YEAR)); // imprime 1 como esperado
        dt = df.parse ("08/01/2006");
        cal.setTime (dt);
        System.out.println("Semana = " + cal.get(Calendar.WEEK_OF_YEAR)); // deve imprimir 2
        dt = df.parse ("31/12/2006");
        cal.setTime (dt);
        System.out.println("Semana = " + cal.get(Calendar.WEEK_OF_YEAR)); // imprime 1 porque está na primeira semana do ano que vem
    }
}
Luca

Olá

Marques, por favor, não crie tópicos com título como por exemplo Dúvida conceitual, que não mostra o assunto da sua dúvida e nem crie tópicos duplicados.

Obrigado.

[]s
Luca

Criado 5 de julho de 2006
Ultima resposta 5 de jul. de 2006
Respostas 2
Participantes 3