A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© smile_joe 中级黑马   /  2013-4-20 21:39  /  1230 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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)强转?

评分

参与人数 1技术分 +1 收起 理由
曹睿翔 + 1 神马都是浮云

查看全部评分

2 个回复

倒序浏览
亲爱的同学,你的Date类的包,导错了,是java.util下的,不是java.sql下的
回复 使用道具 举报
如果问题未解决,请继续追问,如果问题解决了,请将问题分类改为“已解决”,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马