Dúvida em algoritmo para mostrar a semana de uma determinada Data [RESOLVIDO]

Olá galera,

Estou desenvolvendo um algoritmos para pegar a semana de uma determinada data no formado dd/mm/aaaa.

Até aonde eu fiz funcionou. Gostaria de algumas idéias para o algoritmo ficar menor e mais objetivo.

[code]import java.util.Scanner;
public class Semanas{
public static void main(String[] args){
Scanner teclado = new Scanner(System.in);

    System.out.print("Digite a data no formato dd/mm/aaaa: ");
    String dt = teclado.nextLine();        
    
    String diaS = dt.substring(0, 2);
    String mesS = dt.substring(3, 5);
    String anoS = dt.substring(6, 10);
            
    int dia = Integer.parseInt(diaS);
    int mes = Integer.parseInt(mesS);
    int ano = Integer.parseInt(anoS);
    
    int dias = dia;
    int semanaAno=1;

    if(mes==1){
        semanaAno=dias/7;
        if(semanaAno==0){
            semanaAno=1;
        }
        else{
            semanaAno+=1;
        }
    }
    
    else{
        if(mes==3 || mes==5 || mes==7 || mes==8 || mes==10 || mes==12){
           dias+=(mes-1)*31;
        }            
        else if(mes==2){                
           if(ano%400==0 || (ano%4==0 && ano%100!=0))
              dias+=(mes-1)*29;           
           else
              dias+=(mes-1)*28;
        }                
        else
           dias+=(mes-1)*30;                 
           
        semanaAno = dias/7;
    }
                                         
    System.out.println("Você está na semana de nº "+semanaAno+" do ano");
    
}

}

[/code]

Isso é trabalho da escola?

Se sim, tens de rever esse algoritmo pois está a assumir que todos os meses até ao mês actual têm o mesmo número de dias.
Por exemplo: 31Jan dá semana 5 mas 01Fev dá semana 4. Ou 31Mai dá semana 22 e 01Jun dá semana 21.

Se não é para a escola, podes fazer simplesmente:

Scanner teclado = new Scanner(System.in);
System.out.print("Digite a data no formato dd/mm/aaaa: ");
String dt = teclado.nextLine();

DateFormat dfInput = new SimpleDateFormat("dd/MM/yyyy");
Date date = dfInput.parse(dt);

DateFormat dfOuput = new SimpleDateFormat("w");
System.out.println("Você está na semana de nº " + dfOuput.format(date) + " do ano");