2012-05-27 6 views
1

Отображает дату 100 дней с сегодняшнего дня, в день вашего рождения и дату 10 000 дней после даты вашего рождения. Я сделал все это, но я хочу сделать это еще дальше, я хочу, чтобы пользователь мог ввести количество дней с сегодняшнего дня, чтобы он/она хотел знать дату (если это вообще имеет смысл ...). Вот то, что часть кода я сейчас работаю выглядит как:Несовместимые типы - найдено java.lang.String, но ожидается int, в java

public class calendarProjectTest 
    { 
    public static void main(String[] args) 
    { GregorianCalendar cal = new GregorianCalendar(); //declare today's date 
    GregorianCalendar myBirthday = new 
    GregorianCalendar(1990, GregorianCalendar.JUNE, 9); //declare my birthday 
    System.out.println("Please enter a number greater than 0:"); 
    Scanner keyboard = new Scanner(System.in); 
    String number = keyboard.next(); 
    int value = number; 
    cal.add(GregorianCalendar.DAY_OF_MONTH, number); 

Я использую Bluej и это говорит, «несовместимые типы - найдено java.lang.String, но ожидается ИНТ» я в потеря. я не знаю, что делать. любой совет будет замечательным. и да, я знаю, что нет конечных скобок.

ответ

1

Изменить это:

cal.add(GregorianCalendar.DAY_OF_MONTH, Integer.parseInt(number)); 

Как вы можете видеть из docs, метод add() необходимы оба параметра, как int.

1

Используйте это:

int value = Integer.parseInt(number); 
1

проблема лежит здесь

String number = keyboard.next(); 
int value = number; 

вместо этого использовать:

int value = keyboard.nextInt(); // you will get parsed int value 
cal.add(GregorianCalendar.DAY_OF_MONTH, value); 
0

Keyboard.next(); возвращает строку, а не целое число.

поэтому int value = number пытается присвоить строковое значение типу int. попробуйте поместить это вместо: int value = Integer.parseInt (number);

хотите получить больше информации о GregorianCalendar и http://www.vogella.com/articles/JavaDateTimeAPI/article.html

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