1

まず最初に、私は大学で Java を学び始めたばかりであることを皆さんにお知らせしたいと思います。ですから、初心者としての間違いをお許しください。

基本的に、このコードで達成したいことは、スキャナー関数を使用して誰かの年齢を計算することです。誰かが生年月日 (YYYY-MM-DD の形式) を入力すると、コードで年齢を計算します。

3行目だと思うので、コードは機能していません: String dob = input.nextInt(); は間違って書かれており、その下のコード行では認識できません。

その行をString dob = "1988-11-29";に変更すると それは機能しますが、私のスキャナー機能は役に立ちません。

誰かがこれで私を助けることができますか? 前もって感謝します!

  Scanner input  = new Scanner(System.in);
  System.out.println("Enter your DOB pls");
  String dob = input.nextInt();

  int yearDOB = Integer.parseInt(dob.substring(0, 4)); 
  int monthDOB = Integer.parseInt(dob.substring(5, 7)); 
  int dayDOB = Integer.parseInt(dob.substring(8, 10)); 

  SimpleDateFormat 
  dateFormat = new SimpleDateFormat("yyyy"); 
  Date date = new Date(); 
  int thisYear = Integer.parseInt(dateFormat.format(date)); 

  dateFormat = new SimpleDateFormat("MM");
  date = new java.util.Date();
  int thisMonth = Integer.parseInt(dateFormat.format(date));

  dateFormat = new SimpleDateFormat("dd");
  date = new java.util.Date();
  int thisDay = Integer.parseInt(dateFormat.format(date));

  int age = thisYear-yearDOB;
  if(thisMonth < monthDOB){ age = age-1;
  } if(thisMonth == monthDOB && thisDay < dayDOB)
  { age = age-1;
  } 

  System.out.println("The age of user is : " + age);
4

2 に答える 2

0
Scanner s=new Scanner(System.in);
String dob=s.next("[12][0-9]{3}-[0-9]{2}-[0-3][0-9]");
int yearDOB = Integer.parseInt(dob.substring(0, 4)); 
int monthDOB = Integer.parseInt(dob.substring(5, 7)); 
int dayDOB = Integer.parseInt(dob.substring(8, 10));
Calendar c=Calendar.getInstance();
int thisYear = c.get(Calendar.YEAR);
int thisMonth = c.get(Calendar.MONTH)+1;
int thisDay = c.get(Calendar.DAY_OF_MONTH);
// the rest is up to you
于 2013-09-10T16:38:29.420 に答える
0

あなたが書くとき

String dob = input.nextInt()

intあなたはあなたのString:に入れようとしていますdobnextInt()の行全体を読み込もうとしている場合に使用する方法は間違っています1988-11-29

Scanner.nextLineString

于 2013-09-10T16:29:29.040 に答える