2014-12-10 4 views
-1

Мы должны сделать программу по информатике, которая определяет, в какой день недели вы родились. Нам дали эти инструкции. 1) Начните с двух последних цифр года, в котором вы родились. 2) Разделите указанное число на 4, опустив остаток, если он есть. 3) Найдите номер, связанный с месяцем, в котором вы родились в Таблице месяцев. 4) В какой день месяца ваш день рождения? 5) Найдите сумму четырех чисел, полученных на этапах с 1 по 4. 6) Разделите сумму на номер 7. День, соответствующий остатку в Таблице дней, - это день недели, в который вы родились ,Ошибка Java Switch Несовместимая ошибка с коммутаторами

Таблица месяцев Таблица Дней
1 января (0 в високосный год) Воскресенье 1
4 февраля (3 в високосном году) Понедельник 2
4 марта вторник 3
апреля 0 Среда 4
2 мая четверг 5
5 июня пятница 6
июля 0 0 суббота
3 августа
6 сентября
1 октября
4 ноября
6 декабря

У меня возникли проблемы с несравнимо типов: ИНТ и логическое, я не знаю, в чем проблема, ив попытался изменить переменные булевы, но Безразлично Решить что-нибудь.

package LeapYear; 
import java.util.*; 
public class Birthday 
{ 
    static Scanner in= new Scanner(System.in); 
    public static void main (String []args) 
    { 

     int year=getYear(); 
     int month=getMonth(year); 
     int day=getDay(); 
     int total=computeDay(day, month, year); 
     int dayofbirth=dayOfWeek(day,month,year); 

}//end main 
     public static int getYear() 
     { 

      System.out.println("Please enter the last two digits of the year you were born:"); 
      int y=in.nextInt(); 
      return y; 
     } 
     public static int getMonth(int year) 
     { 
      int m; 
      System.out.println("Please select the month in which you were born:"+ 
         "1.)Januaryn\n"+ 
         "2.)February\n"+ 
         "3.)March\n"+ 
         "4.)April\n"+ 
         "5.)May\n"+ 
         "6.)June\n"+ 
         "7.)July\n"+ 
         "8.)August\n"+ 
         "9.)September\n"+ 
         "10.)October\n"+ 
         "11.)November\n"+ 
         "12.)December\n"); 
      m=in.nextInt(); 
      System.out.println("You entered " + m); 
         switch(m) 
         { 
          case 1: if(year ==true) 
         return 0; 
        else 
          return 1 ; 
          break; 
          case 2:if(year == true) 
          return 3; 
        else 
          return 4; 
          break; 
          case 3:return 4; 
          break; 
          case 4:return 0; 
          break; 
          case 5:return 2; 
        break; 
          case 6:return 5; 
          break; 
          case 7:return 0; 
          break; 
          case 8:return 3; 
          break; 
          case 9:return 6; 
          break; 
          case 10:return 1; 
          break; 
          case 11:return 4; 
          break; 
          case 12:return 6; 
          break;  

         }//end case 

     }//end getMonth 
     public static int getDay() 
     { 
      int d; 
      System.out.println("Please enter the day on which you were born"); 
      d=in.nextInt(); 
      return d; 

     }//end getDay 
     public static int computeDay(int day, int month, int year) 
     { 
      int weekday; 
      int y2=year/4; 
     int m2= month + y2 + day; 
     int total=m2/7; 
     return total; 

     }//end computeDay 
    public static int dayOfWeek(int day, int month, int year, int total) 
    { 
     int dob; 
      switch(dob) 
      { 
      case 1:if (total=1) 
      System.out.println("You were born on a Sunday"); 
      break; 
      case 2:if (total=2) 
      System.out.println("You were born on a Monday"); 
      break; 
      case 3: if (total=3) 
      System.out.println("You were born on a Tuesday"); 
      break; 
      case 4: if(total=4) 
      System.out.println("You were born on a Wednesday"); 
      break; 
      case 5: if(total=5); 
      System.out.println("You were born on a Thursday"); 
      break; 
      case 6: if (total=6); 
      System.out.println("You were born on a Friday"); 
      break; 
      case 7: if (total=7); 
      System.out.println("You were born on a Saturday"); 
      break; 
      } 


    }//end dayOfWeek 




}//end class 
+2

'total = 1' должно быть' total == 1'. То же самое относится к вашим другим условиям if. – irrelephant

+2

Каким может быть число? – August

+0

Кажется, что каждый вопрос, который упоминает назначение или домашнюю работу, уменьшается. Действительно ли это имеет значение, если люди просят о помощи в своей домашней работе? Как еще можно учиться? Активизировано в отместку. – localhost

ответ

1

if(year == true) не может составить, поскольку целое число не может быть правдой. Сделайте что-нибудь полезное, что заявление, как:

if(year < 50) 
{ 
    System.out.println("Wow, you're old!"); 
    return 0; 
} 

Потому что вы только получаете две последние цифры своего года рождения, вы будете иметь проблемы принятия решения, если пользователь родился в год 1905 или 2005. Это маловероятный случай, но вы не сможете расшифровать, родился ли пользователь в этом столетии или в прошлом. Если это приемлемо, чтобы не знать, не меняйте его. Если нет, вам нужно будет получить дополнительную информацию от пользователя.

Смежные вопросы