* 定义一个方法,输入一个身份证号码(18)位,最终返回一个字符串,格式如下:“尊敬的男士(女士),您是****年**月**日出生的。”
* 要求:如果输入的身份证不是18位,或者格式不正确(包含非数字字符,除了最后一位的X除外)则返回一个字符串“您输入的身份证号码有误”
* */
import java.util.Scanner
public class JudgeID {
public static void main(String[] args){
Scanner reader = new Scanner(System.in)
System.out.println("请输入您的id号码")
String id = reader.next()
System.out.println(judgeID(id))
}
public static String judgeID(String IDNumber){
int len = IDNumber.length()
String wrongMsg = "您输入的身份证号有误"
String correctMsg = null
char lastChar = IDNumber.charAt(len-1)
String year = null
String month = null
String day = null
if(len != 18){
return wrongMsg
}
for(int i = 0i <len-1i++){
if(IDNumber.charAt(i) <'0' || IDNumber.charAt(i) >'9' ){
return wrongMsg
}
}
if(lastChar != 'X' &&lastChar >'0' &&lastChar <'9'){
return wrongMsg
}
//如果身份证格式是没有问题的,那个打印年月日信息
year = IDNumber.substring(6,10)
month = IDNumber.substring(10,12)
day = IDNumber.substring(12,14)
correctMsg = "您是"+year+"年"+month+"月"+day+"日出生!"
return correctMsg
}
}
String id = "123456200801010000"int year = Integer.parseInt(id.substring(6,10))
System.out.println(year)
if ((year % 4 == 0 &&year % 100 != 0) || year % 400 == 0)
{
System.out.println("是闰年")
}
else {
System.out.println("不是闰年")
}
我写死了身份证 你可以写成静态方法传参进去,找到身份证中年份对应的角标就行了