Ok I got it working with:
import java.util.Scanner;
public class BirthdayEdit {
public static void main (String arg[])
{
Scanner sc = new Scanner(System.in);
boolean cont = true;
while(cont)
{
System.out.println("What is your birth month?");
int birthMonth = sc.nextInt();
System.out.println("What is your birth day?");
int birthDay = sc.nextInt();
System.out.println("What is your birth year?");
int birthYear = (sc.nextInt() - 1900);
double birthYearRemainder = birthYear % 4;
int leap;
int total;
int birthMonthAdd = 0;
switch (birthMonth) {
case 1: birthMonthAdd = 1; break;
case 2: birthMonthAdd = 4; break;
case 3: birthMonthAdd = 4; break;
case 4: birthMonthAdd = 0; break;
case 5: birthMonthAdd = 2; break;
case 6: birthMonthAdd = 5; break;
case 7: birthMonthAdd = 0; break;
case 8: birthMonthAdd = 3; break;
case 9: birthMonthAdd = 6; break;
case 10: birthMonthAdd = 1; break;
case 11: birthMonthAdd = 4; break;
case 12: birthMonthAdd = 6; break;
}
if (birthYearRemainder==0) {
leap = -1;
} else {
leap = 0;
}
total = ((birthMonthAdd + birthDay + (birthYear / 4) + birthYear + leap)%7);
String day = null;
switch(total) {
case 0:
day = "Saturday";
break;
case 1:
day = "Sunday";
break;
case 2:
day = "Monday";
break;
case 3:
day = "Tuesday";
break;
case 4:
day = "Wednesday";
break;
case 5:
day = "Thursday";
break;
case 6:
day = "Friday";
break;
default:
System.err.println("An error occurred.");
System.exit(0);
}
if(birthMonth > 12 || birthMonth < 0) {
System.out.println("An error occurred.");
} else if (birthYear > 101 || birthYear < 1) {
System.out.println("An error occurred.");
} else if (birthMonth == 2 && birthDay >= 30) {
System.out.println("An error occurred.");
} else {
System.out.println("You were born on a " +day);
}
System.out.println("Continue?");
sc.nextLine();
cont = !sc.nextLine().equalsIgnoreCase("no");
}
}
}
The problem seems to be that the sc.nextInt() was doing funky stuff again, type no to discontinue