亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

java 根據(jù)身份證號碼判斷出生日期、性別、年齡的示例

 更新時間:2020年10月22日 08:57:05   作者:Marydon  
這篇文章主要介紹了java 根據(jù)身份證號碼判斷出生日期、性別、年齡的示例,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下

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 身份證號碼的資料請關注腳本之家其它相關文章!

相關文章

  • 詳解Java中的鎖Lock和synchronized

    詳解Java中的鎖Lock和synchronized

    鎖是Java并發(fā)編程中最重要的同步機制,Java提供了種類豐富的鎖,每種鎖因其特性的不同,在適當?shù)膱鼍跋履軌蛘宫F(xiàn)出非常高的效率。本文將詳細介紹Lock和synchronized
    2021-06-06
  • 無感NullPointerException的值相等判斷方法

    無感NullPointerException的值相等判斷方法

    當我們需要去判斷一個?入參/查庫?返回的開關變量(通常是個Integer類型的)時,常常會寫如下的if-else判斷語句。但又會為在生產環(huán)境看到的「NullPointerException」感到困擾,遇到這個問題如何處理呢,下面小編通過本文給大家詳細講解,需要的朋友參考下吧
    2023-02-02
  • Java?List集合取交集的8種不同實現(xiàn)方式總結

    Java?List集合取交集的8種不同實現(xiàn)方式總結

    工作中經常遇到需要取兩個集合之間的交集、差集情況,下面這篇文章主要給大家總結介紹了關于Java?List集合取交集的8種不同實現(xiàn)方式,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-04-04
  • Java Spring數(shù)據(jù)單元配置過程解析

    Java Spring數(shù)據(jù)單元配置過程解析

    這篇文章主要介紹了Java Spring數(shù)據(jù)單元配置過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-12-12
  • 淺談Java成員變量與屬性的區(qū)別(簡單最易懂的解釋)

    淺談Java成員變量與屬性的區(qū)別(簡單最易懂的解釋)

    下面小編就為大家?guī)硪黄獪\談Java成員變量與屬性的區(qū)別(簡單最易懂的解釋)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • Maven坐標和依賴的實現(xiàn)示例

    Maven坐標和依賴的實現(xiàn)示例

    本文主要介紹了Maven坐標和依賴的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-04-04
  • Java使用itextpdf實現(xiàn)Excel轉PDF

    Java使用itextpdf實現(xiàn)Excel轉PDF

    這篇文章主要為大家詳細介紹了Java如何使用itextpdf實現(xiàn)Excel轉PDF,并且支持xlsx和xls兩種格,文中的示例代碼講解詳細,希望對大家有所幫助
    2024-01-01
  • java并發(fā)編程專題(三)----詳解線程的同步

    java并發(fā)編程專題(三)----詳解線程的同步

    這篇文章主要介紹了JAVA并發(fā)編程 線程同步的的相關資料,文中示例代碼非常詳細,幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-06-06
  • 95%的Java程序員人都用不好Synchronized詳解

    95%的Java程序員人都用不好Synchronized詳解

    這篇文章主要為大家介紹了95%的Java程序員人都用不好Synchronized詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • Java手動創(chuàng)建線程池代碼實例

    Java手動創(chuàng)建線程池代碼實例

    這篇文章主要介紹了Java手動創(chuàng)建線程池代碼實例,FixedThreadPool或者SingleThreadPool,允許的請求隊列長度為Integer.MAX_VALUE,可能會堆積大量的請求,從而導致OOM,需要的朋友可以參考下
    2023-12-12

最新評論