/*这个也没什么大的功能,也没什么安全验证,只是对输入的身份证号码的长度进行了验证。
其他的功能可以自己添加。*/
import java.util.*;
import java.util.Scanner;
import java.text.*;
import java.util.Date; class Test02
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.println("请输入你的身份证号码:");
String s = input.next();
while(s.length()!=18) //输入个数判断,初步验证身份证号码的真假
{
System.out.println("你的输入有误,请重新输入!");
s = input.next(); }
// 通过String[]的substring方法来读取信息
String yy1 = s.substring(6,10); //出生的年份
String mm1 = s.substring(10,12); //出生的月份
String dd1 = s.substring(12,14); //出生的日期
System.out.println("你的生日为:");
String birthday = yy1.concat("-").concat(mm1).concat("-").concat(dd1);
//使用replace替换掉字符串中出现的0
System.out.println(mm1.replace("0","")+"月"+dd1.replace("0","")+"号");
System.out.println("你的出生日期:");
System.out.println(birthday);
//计算年龄
try
{
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd");
String s1 = sdf.format(date);
Date today = sdf.parse(s1);
/*parse方法可以自己查api,他就是将文档(此处是String)格式转成sdf(自己定义的日期格式)。*/
Date birth = sdf.parse(birthday);
System.out.println("你的年龄:");
System.out.println(today.getYear() - birth.getYear());
// System.out.println(today);
// System.out.println(today.getYear()); }
catch (Exception e)
{
System.out.println("a problem has happened!");
} System.out.println("Thank you!"); }
}

//由于版本的问题,在此处进行了异常处理

关于java中根据身份证求生日和年龄的问题的更多相关文章

  1. Java中校验身份证号合法性(真伪),获取出生日期、年龄、性别、籍贯

    开发过程中有用的身份证号的业务场景,那么校验身份证的合法性就很重要了,另外还有通过身份证获取出生日期.年龄.性别.籍贯等信息, 下面是本人在开发中用到的关于校验身份证真伪的工具类,可以直接拿来使用,非 ...

  2. 2013年6月19日星期三java中函数地址值传递

    今天代码审核时确认了一个问题,理解了java中string和stringbuffer赋值问题,看到一个帖子很好,摘录如下: 理解这两个例子需要分清实参和形参的区别,引用和对象的区别 第一个例子的内部执 ...

  3. Java中获取指定日为星期几及其他日期操作

    摘自:http://blog.csdn.net/cselmu9/article/details/8625530#t6 在开发中经常会使用到一些日期方面的操作,下面例子展示几个常用的操作. 1.取得指定 ...

  4. java 随机生成身份证代码

    import java.util.Calendar; import java.util.Collection; import java.util.HashMap; import java.util.I ...

  5. 在JAVA中记录日志的十个小建议

    JAVA日志管理既是一门科学,又是一门艺术.科学的部分是指了解写日志的工具以及其API,而选择日志的格式,消息的格式,日志记录的内容,哪种消息对应于哪一种日志级别,则完全是基于经验.从过去的实践证明, ...

  6. JAVA代码验证身份证信息

    java验证身份证信息代码 转自:http://www.blogjava.net/xylz/archive/2011/01/05/342330.html import java.util.Calend ...

  7. Java中2+2==5解读

    先来看一段程序,如下: package basic; import java.lang.reflect.Field; public class TestField { public static vo ...

  8. JAVA中获取当前系统时间及格式转换

    JAVA中获取当前系统时间   一. 获取当前系统时间和日期并格式化输出: import java.util.Date;import java.text.SimpleDateFormat; publi ...

  9. Java中的夏令时问题

    因为在用C#做项目的时候被夏令时坑过一回,所以这次将在java中的时区转换信息做一下记录,很简单 SimpleDateFormat inputFormat = new SimpleDateFormat ...

随机推荐

  1. Calendar( 日历)

    本节课重点了解 EasyUI 中 Canlendar(日历)组件的使用方法,这个组件不依赖于其他组件.一. 加载方式//class 加载方式<div id="box" cla ...

  2. Javascript高级程序设计读书笔记(第10章 DOM)

    第10章 DOM 10.1  节点层次 每个节点都有一个nodeType属性,用于表明节点的类型.任何节点类型必是下面中的一个: Node.Element_NODE(1); NODE.ATTRIBUT ...

  3. ASP.NET MVC上传文件的几种方法

    1.Form表单提交 <p>Form提交</p> <form action="@Url.Action("SavePictureByForm" ...

  4. Asp.Net--主题/皮肤文件

    主题 是皮肤的集合.皮肤描述了控件应该如何显示,它可以定义样式的属性,图片,颜色等. 如果拥有多个主题,用户可以根据需要选择主题来显示站点,这只需要通过点击按钮,从一个皮肤切换到另一个皮肤. 皮肤文件 ...

  5. defer和async

    1.decument.wirte不能使用 2.<script src="text.js" type="text/javascript" defer=&qu ...

  6. Swift--访问级别-备

    访问级别: Swift提供了3种不同访问级别,对应的访问修饰符为:public.internal和private.这些访问修饰符可以修饰类.结构体.枚举等面向对象的类型,还可以修饰变量.常量.下标.元 ...

  7. repo init 时gpg: 无法检查签名:找不到公钥

    i found a solution here: http://www.marshut.com/wrrts/repo-release-1-12-4.html Sorry, I realized tod ...

  8. 获取android源码时repo的错误

    今天用repo获取android源码:../bin/repo init -u git://android.git.kernel.org/platform/manifest.git出现问题:问题一:Tr ...

  9. codeforces Ilya and Matrix

    http://codeforces.com/contest/313/problem/C #include <cstdio> #include <cstring> #includ ...

  10. linux/unix 段错误捕获【续】

    本文为“在C/C++中捕获段错误,打印出错的具体位置”的续篇,进一步解决涉及动态链接库的情况.   背景知识: ·linux/unix下动态链接库的基本原理 ·/proc/pid/maps文件的基本格 ...