关于java中根据身份证求生日和年龄的问题
/*这个也没什么大的功能,也没什么安全验证,只是对输入的身份证号码的长度进行了验证。
其他的功能可以自己添加。*/
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中根据身份证求生日和年龄的问题的更多相关文章
- Java中校验身份证号合法性(真伪),获取出生日期、年龄、性别、籍贯
开发过程中有用的身份证号的业务场景,那么校验身份证的合法性就很重要了,另外还有通过身份证获取出生日期.年龄.性别.籍贯等信息, 下面是本人在开发中用到的关于校验身份证真伪的工具类,可以直接拿来使用,非 ...
- 2013年6月19日星期三java中函数地址值传递
今天代码审核时确认了一个问题,理解了java中string和stringbuffer赋值问题,看到一个帖子很好,摘录如下: 理解这两个例子需要分清实参和形参的区别,引用和对象的区别 第一个例子的内部执 ...
- Java中获取指定日为星期几及其他日期操作
摘自:http://blog.csdn.net/cselmu9/article/details/8625530#t6 在开发中经常会使用到一些日期方面的操作,下面例子展示几个常用的操作. 1.取得指定 ...
- java 随机生成身份证代码
import java.util.Calendar; import java.util.Collection; import java.util.HashMap; import java.util.I ...
- 在JAVA中记录日志的十个小建议
JAVA日志管理既是一门科学,又是一门艺术.科学的部分是指了解写日志的工具以及其API,而选择日志的格式,消息的格式,日志记录的内容,哪种消息对应于哪一种日志级别,则完全是基于经验.从过去的实践证明, ...
- JAVA代码验证身份证信息
java验证身份证信息代码 转自:http://www.blogjava.net/xylz/archive/2011/01/05/342330.html import java.util.Calend ...
- Java中2+2==5解读
先来看一段程序,如下: package basic; import java.lang.reflect.Field; public class TestField { public static vo ...
- JAVA中获取当前系统时间及格式转换
JAVA中获取当前系统时间 一. 获取当前系统时间和日期并格式化输出: import java.util.Date;import java.text.SimpleDateFormat; publi ...
- Java中的夏令时问题
因为在用C#做项目的时候被夏令时坑过一回,所以这次将在java中的时区转换信息做一下记录,很简单 SimpleDateFormat inputFormat = new SimpleDateFormat ...
随机推荐
- .call()和.apply()相同点与不同点
.call()和.apply()相同点与不同点 function add(a,b) { alert(a+b); } function sub(a,b) { alert(a-b); } add.call ...
- (转)asp.net注册实现下一步
在asp.net中有两种容器控件,其中包括panel和placeholder控件. 使用panel控件可以对控件进行分组.一帮助组织web窗体也的内容,将控件组织在面板中,可提供有关在运行时控件应如何 ...
- 解决Linux下Oracle中文乱码的一些心得体会 ,转自
以下转自 http://blog.itpub.net/29151695/viewspace-1173238/ 最近在linux上安装完oracle 10gR2后,又遇到了字符集乱码的问题,之前在网上找 ...
- C语言转义字符相关知识
在C语言里所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示.而C中定义了一些字母或数字前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称 ...
- 针对AJAX与JSONP的异同
针对AJAX与JSONP的异同 1.ajax和jsonp这两种技术在调用方式上“看起来”很像,目的也一样,都是请求一个url,然后把服务器返回的数据进行处理,因此jquery和ext等框架 ...
- ECSTORE验证码优化
用ecstore的朋友应该知道,ecstore的验证码超级鸡肋. 特别是字母和数字混合,根本就看不懂写的是什么? 数字还好,但是字母就别提了.而且还小. 索性就把验证码换掉.研究一下发现,ecstor ...
- A*八数码
帮同学写的八数码,启发式搜索 创建两个表open,close,分别用的stl中的优先队列priority_queue和map,好久没写过代码了,bug调了半天 #include <iostrea ...
- Scala学习笔记--文件IO
补充: http://blog.csdn.net/lyrebing/article/details/20369445 http://developer.51cto.com/art/200907/134 ...
- Swift—计算属性-备
计算属性本身不存储数据,而是从其他存储属性中计算得到数据. 计算属性概念: 计算属性提供了一个getter(取值访问器)来获取值,以及一个可选的setter(设置访问器)来间接设置其他属性或变量的值. ...
- 【原创】基于部署映像服务和管理(DISM)修改映象解决WIN7 USB3.0安装时报错
本文作者为博客园阿梓喵http://www.cnblogs.com/c4isr/,转载请注明作者. 本文源地址:http://www.cnblogs.com/c4isr/p/3532362.html ...