Java中日期的API,求大神解析,哪里出错啊?

packageday03;importjava.util.Scanner;importjava.text.ParseException;importjava.text.S... package day03;
import java.util.Scanner;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* 实现时间的计算: 要求用户输入身份证号,若格式有误,要求其重新输入。然后根据身份证号码输出20岁生日
* 所在周的周三的日期。
* 例如:
* 出生日期:1992-07-15。
* 20岁生日:2012-07-15
* 当周的周三为:2012-07-18
* @author Xiloe
*
*/
public class Test05 {
public static void main(String[] args) throws ParseException {
Scanner scan=new Scanner(System.in);
for(int i=0;i<5;i++){
System.out.println("请输入您的身份证号:");
String str=scan.nextLine();
String body="\\d{17}+(\\d||X||x?)";
boolean f=str.matches(body);
if(f==true){
String a=str.substring(6,6+8);
SimpleDateFormat fmt=new SimpleDateFormat("yyyy-MM-dd");
Date date=fmt.parse(a);
Calendar cal=Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.YEAR,20);
cal.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);
Date h=cal.getTime();
String birthday=fmt.format(h);
System.out.println(birthday);
break;
}else{
System.out.println("输入错误,请重新输入:");
}
}

}
}
展开
 我来答
hitzsf
2017-05-25 · TA获得超过2060个赞
知道大有可为答主
回答量:1741
采纳率:78%
帮助的人:1169万
展开全部
SimpleDateFormat fmt=new SimpleDateFormat("yyyy-MM-dd");  //这句日期格式不对改成"yyyyMMdd"
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式