Java从身份证号码,提取用户的出生年月日,输出用户的生日信息。

import java.util.Calendar;
import java.util.Scanner;

/**
 * 
	根据用户输入的身份证号码,从字符串中提取用户的出生年月日,输出用户的生日信息。
		要求:
			身份证号码必须为18位或16位。
			年龄范围在1900到当前日期之间。
			月份必须在1~12之间
			对应的日应该与当前月相符,如4月最多只有30天。注意判断闰年的2月有29天。
 * @author 万星明
 * @version 1.0
 * @time
 */
public class Work5 {
	static Scanner sc = new Scanner(System.in);
	static Calendar c=Calendar.getInstance();
	public static void main(String[] args) {
	     
		 
		System.out.println("请输入身份证:");
		String IDcard = sc.next(); 
		IDcard(IDcard);
	}
	public static void IDcard(String IDcard) {
		switch(IDcard.length()) {
			case 18:
			case 16:
				String year = IDcard.substring(6, 10);
				if(Integer.decode(year) <1900 && Integer.decode(year)>c.get(Calendar.YEAR))
					System.out.println("年龄不合法");
				String month = IDcard.substring(10,12);
				
				if(Integer.decode(month)<1 && Integer.decode(month)>12)
					System.out.println("身份证不合法");
				String day = IDcard.substring(12,14);
				
				c.set(Integer.decode(year) ,Integer.decode(month), 0);
				if(Integer.decode(day)>c.get(Calendar.DAY_OF_MONTH))
					System.out.println("身份证不合法");
				System.out.println("尊贵的用户,您的生日为:"+year+"年"+month+"月"+day+"日");
				break;
			default:
				System.out.println("身份证不合法");
				break;
		}
	}
}
  • 11
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值