1

显示从今天起 100 天的日期、您的出生日期和出生日期后 10,000 天的日期。我已经完成了所有这些,但我想更进一步,我希望用户能够输入从今天起他/她希望知道日期的天数(如果这有任何意义的话...)。这是我正在处理的代码部分的样子:

 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 但预期为 int”我不知所措。我不知道该怎么做。任何建议都会很棒。是的,我知道没有结束括号。

4

4 回答 4

1

用这个:

int value = Integer.parseInt(number);
于 2012-05-27T11:13:25.777 回答
1

改变这个:

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

正如您从文档中看到的那样,该add()方法需要两个参数作为int.

于 2012-05-27T11:14:13.037 回答
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);
于 2012-05-27T11:15:38.767 回答
0

键盘.next(); 返回一个字符串,而不是整数。

所以 int value = number 试图将字符串值分配给 int 类型。尝试把它改为:int value = Integer.parseInt( number );

想了解更多关于GregorianCalendarhttp://www.vogella.com/articles/JavaDateTimeAPI/article.html的信息

于 2012-05-27T11:19:14.603 回答