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

Keyboard.next(); 整数ではなく文字列を返します。

したがって、int value = numberは、文字列値をint型に割り当てようとしています。代わりにこれを入れてみてください:int value = Integer.parseInt(number);

GregorianCalendarhttp://www.vogella.com/articles/JavaDateTimeAPI/article.htmlに関する詳細情報が必要

于 2012-05-27T11:19:14.603 に答える