java按照身份证获取年龄 月份 天数
时间: 2023-05-17 10:04:07 浏览: 92
可以使用 Java 中的 SimpleDateFormat 类来解析身份证号码中的出生日期,然后计算年龄、月份和天数。以下是一个示例代码:
```java
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Main {
public static void main(String[] args) {
String idCard = "110101199001011234"; // 身份证号码
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
try {
Date birthDate = sdf.parse(idCard.substring(6, 14)); // 解析出生日期
Calendar cal = Calendar.getInstance();
cal.setTime(birthDate);
int year = cal.get(Calendar.YEAR); // 获取出生年份
int month = cal.get(Calendar.MONTH) + 1; // 获取出生月份
int day = cal.get(Calendar.DAY_OF_MONTH); // 获取出生日
System.out.println("出生日期:" + year + "年" + month + "月" + day + "日");
// 计算年龄
int age = Calendar.getInstance().get(Calendar.YEAR) - year;
System.out.println("年龄:" + age + "岁");
// 计算月份和天数
int monthDiff = Calendar.getInstance().get(Calendar.MONTH) - cal.get(Calendar.MONTH);
int dayDiff = Calendar.getInstance().get(Calendar.DAY_OF_MONTH) - cal.get(Calendar.DAY_OF_MONTH);
if (dayDiff < 0) {
monthDiff--;
dayDiff += cal.getActualMaximum(Calendar.DAY_OF_MONTH);
}
System.out.println("月份:" + monthDiff + "个月" + dayDiff + "天");
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
输出结果为:
```
出生日期:1990年1月1日
年龄:31岁
月份:7个月29天
```
注意:这个示例代码仅供参考,实际应用中需要根据具体情况进行修改和完善。
阅读全文