本帖最后由 smile_joe 于 2013-4-22 21:01 编辑
import java.sql.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Scanner;
//import java.text.*;
public class Test4 {
/**
* @param args
*/
public static void main(String[] args) {
method();
}
public static void method() {
Scanner sc=new Scanner(System.in);//键盘输入
System.out.println("請輸入一個身份證號碼");
String s=sc.nextLine();
//验证长度
if (s.length()!=18) {//符合条件直接结束
System.out.println("不合法");
return;
}else System.out.println("合法");
String s1=s.substring(6, 14);
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");//格式
Date d=null;
try {
d = (Date)sdf.parse(s1);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} // 将年月日分析成日期
Calendar c = Calendar.getInstance();// 表示当前时间
long l = c.getTimeInMillis() - d.getTime(); // 求两个日期之间相差的毫秒值
System.out.println(l / (24 * 60 * 60 * 1000));
}
}
//编译通过,运行报错:类型转化异常,32行错误.
//sdf.parse(字符串)返回的不就是Date吗?但是eclipse一直提示我加(Date)强转?
|