java 根據(jù)身份證號碼判斷出生日期、性別、年齡的示例
1.情景展示
如何根據(jù)身份證號,計算出出生日期、性別、年齡?
2.解決方案
從網上找的別人的,因為并沒有實際用到,所以并未對其優(yōu)化!
/** * 通過身份證號碼獲取出生日期、性別、年齡 * @param certificateNo * @return 返回的出生日期格式:1990-01-01 性別格式:F-女,M-男 */ public static Map<String, String> getBirAgeSex(String certificateNo) { String birthday = ""; String age = ""; String sexCode = ""; int year = Calendar.getInstance().get(Calendar.YEAR); char[] number = certificateNo.toCharArray(); boolean flag = true; if (number.length == 15) { for (int x = 0; x < number.length; x++) { if (!flag) return new HashMap<String, String>(); flag = Character.isDigit(number[x]); } } else if (number.length == 18) { for (int x = 0; x < number.length - 1; x++) { if (!flag) return new HashMap<String, String>(); flag = Character.isDigit(number[x]); } } if (flag && certificateNo.length() == 15) { birthday = "19" + certificateNo.substring(6, 8) + "-" + certificateNo.substring(8, 10) + "-" + certificateNo.substring(10, 12); sexCode = Integer.parseInt(certificateNo.substring(certificateNo.length() - 3, certificateNo.length())) % 2 == 0 ? "F" : "M"; age = (year - Integer.parseInt("19" + certificateNo.substring(6, 8))) + ""; } else if (flag && certificateNo.length() == 18) { birthday = certificateNo.substring(6, 10) + "-" + certificateNo.substring(10, 12) + "-" + certificateNo.substring(12, 14); sexCode = Integer.parseInt(certificateNo.substring(certificateNo.length() - 4, certificateNo.length() - 1)) % 2 == 0 ? "F" : "M"; age = (year - Integer.parseInt(certificateNo.substring(6, 10))) + ""; } Map<String, String> map = new HashMap<String, String>(); map.put("birthday", birthday); map.put("age", age); map.put("sexCode", sexCode); return map; }
根據(jù)身份證號提取出生日期
// 出生日期 String birthday = ""; // 身份證號不為空 if (sfzh.length() == 15) { birthday = "19" + sfzh.substring(6, 8) + "-" + sfzh.substring(8, 10) + "-" + sfzh.substring(10, 12); } else if (sfzh.length() == 18) { birthday = sfzh.substring(6, 10) + "-" + sfzh.substring(10, 12) + "-" + sfzh.substring(12, 14); }
寫在最后
哪位大佬如若發(fā)現(xiàn)文章存在紕漏之處或需要補充更多內容,歡迎留言?。?!
以上就是java 根據(jù)身份證號碼判斷出生日期、性別、年齡的示例的詳細內容,更多關于Java 身份證號碼的資料請關注腳本之家其它相關文章!
相關文章
無感NullPointerException的值相等判斷方法
當我們需要去判斷一個?入參/查庫?返回的開關變量(通常是個Integer類型的)時,常常會寫如下的if-else判斷語句。但又會為在生產環(huán)境看到的「NullPointerException」感到困擾,遇到這個問題如何處理呢,下面小編通過本文給大家詳細講解,需要的朋友參考下吧2023-02-02Java?List集合取交集的8種不同實現(xiàn)方式總結
工作中經常遇到需要取兩個集合之間的交集、差集情況,下面這篇文章主要給大家總結介紹了關于Java?List集合取交集的8種不同實現(xiàn)方式,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-04-04Java Spring數(shù)據(jù)單元配置過程解析
這篇文章主要介紹了Java Spring數(shù)據(jù)單元配置過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-12-12淺談Java成員變量與屬性的區(qū)別(簡單最易懂的解釋)
下面小編就為大家?guī)硪黄獪\談Java成員變量與屬性的區(qū)別(簡單最易懂的解釋)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05Java使用itextpdf實現(xiàn)Excel轉PDF
這篇文章主要為大家詳細介紹了Java如何使用itextpdf實現(xiàn)Excel轉PDF,并且支持xlsx和xls兩種格,文中的示例代碼講解詳細,希望對大家有所幫助2024-01-0195%的Java程序員人都用不好Synchronized詳解
這篇文章主要為大家介紹了95%的Java程序員人都用不好Synchronized詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-03-03