java switch case stringJava从⾝份证号码,提取⽤户的出⽣年⽉⽇,输出⽤户的⽣⽇信息。
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 Instance();
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)&(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)&(Calendar.DAY_OF_MONTH))
System.out.println("⾝份证不合法");
System.out.println("尊贵的⽤户,您的⽣⽇为:"+year+"年"+month+"⽉"+day+"⽇");
break;
default:
System.out.println("⾝份证不合法");
break;
}
}
}