el único inconveniente es que hay que saber si el año es bisiesto
Código:
import java.util.Scanner;
public class Estudiando{
public static String Busca_Dia(int dia){
String El_Dia=null;
switch(dia){
case 0: El_Dia="Domingo"; break;
case 1: El_Dia="Lunes"; break;
case 2: El_Dia="Martes"; break;
case 3: El_Dia="Miercoles"; break;
case 4: El_Dia="Jueves"; break;
case 5: El_Dia="Viernes"; break;
case 6: El_Dia="Sabado"; break;
}
return El_Dia;
}
public static void imprime(String palabra){
System.out.println(palabra);
}
public static void main(String[]args){
Scanner leer = new Scanner(System.in);
int año,dia,mes;
int comprobar_año;
imprime("Ingresa año");
año = leer.nextInt();
do{
imprime("ingresa mes: del 1 al 12");
mes = leer.nextInt();
}while(mes>12 || mes==0);
do{
imprime("ingresa dia");
dia = leer.nextInt();
}while(dia>31 || dia==0);
do{
imprime("El año es bisiesto? Si->1, No->2");
comprobar_año = leer.nextInt();
}while(comprobar_año>2 || comprobar_año==0);
int Modulo_mes = modulo_mes(mes,comprobar_año);
//Formula para saber el dia
int A = (año-1) % 7;
int D = dia % 7;
int DM = (((año-1)/4) - (3*((año-1)/100+1)/4)) % 7;
int resultado = (A + D + Modulo_mes + DM) % 7;
String busca_dia = Busca_Dia(resultado);
System.out.println("El dia Es: " + busca_dia);
imprime("Comunidad Underground Hispana El-Hacker.com");
}
public static int modulo_mes(int mes,int bisiesto){
int modulo=0;
switch(mes){
case 1: modulo = 0; break;
case 2: modulo = 3; break;
case 3: if(bisiesto==1)
modulo = 4;
else
modulo = 3; break;
case 4: if(bisiesto==1)
modulo = 0;
else
modulo = 6; break;
case 5: if(bisiesto==1)
modulo = 2;
else
modulo = 1; break;
case 6: if(bisiesto==1)
modulo = 5;
else
modulo = 4; break;
case 7: if(bisiesto==1)
modulo = 0;
else
modulo = 6; break;
case 8: if(bisiesto==1)
modulo = 3;
else
modulo = 2; break;
case 9: if(bisiesto==1)
modulo = 6;
else
modulo = 5; break;
case 10: if(bisiesto==1)
modulo = 0;
else
modulo = 1; break;
case 11: if(bisiesto==1)
modulo = 4;
else
modulo = 3; break;
case 12: if(bisiesto==1)
modulo = 6;
else
modulo = 5; break;
}
return modulo;
}
}