Skip to content

Instantly share code, notes, and snippets.

@AmrMekkawy
Forked from Zelakolase/DTFromID.java
Created November 15, 2021 13:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AmrMekkawy/9eb2f30c0a2e341a16698db4ffe2645f to your computer and use it in GitHub Desktop.
Save AmrMekkawy/9eb2f30c0a2e341a16698db4ffe2645f to your computer and use it in GitHub Desktop.
National ID to get data from
import java.util.HashMap;
public class DTFromID {
static HashMap<String, String> GovIDMap = new HashMap<String, String>(){
{
put("01","Cairo"); put("02","Alexandria"); put("03","Portsaid"); put("04","Suez"); put("11","Damietta"); put("12","Daqahlia"); put("13","Sharkia"); put("14","Qalyobia"); put("15","Kafr El-sheikh");
put("16","Gharbia"); put("17","Monufia"); put("18","Beheira"); put("19","Ismailia"); put("21","Giza"); put("22","Bani Suef"); put("23","Fayum"); put("24","Menya"); put("25","Asuit");
put("27","Qena"); put("28","Aswan"); put("29","Luxor"); put("31","Red Sea"); put("32","Alwady Algaded"); put("33","Matrouh"); put("34","North Sinai"); put("35","South Sinai"); put("88","N/A");
}
};
public static void main(String[] args) {
// 01234567891234
String ID_input = "30502211325055"; // National ID
// [3] -> 2000-2099 , YY,MM,DD , GovID , Birth ID , Checksum
// 3 , 05 02 21 , 13 , 2505 , 5
System.out.println(getBirthYear(ID_input));
System.out.println(getGov(ID_input));
System.out.println(getGender(ID_input));
}
/*
* Get Gender from National ID
*/
static String getGender(String in) {
String out = "";
int indicator = Integer.parseInt(in.substring(12, 13));
if(indicator % 2 == 0) {
out = "Female";
}
else {
out = "Male";
}
return out;
}
/*
* Get Gov. from National ID
*/
static String getGov(String in) {
String out = "";
String GovID = in.substring(7,9); // 13
out = GovIDMap.get(GovID);
return out;
}
/*
* Gets Birth Year from National ID
*/
static String getBirthYear(String in) {
String out = "";
String Sec_1 = String.valueOf(
17+
Integer.valueOf(
in.substring(0, 1))); // 20
String Sec_2 = in.substring(1,3); // 05
out = Sec_1 + Sec_2;
return out;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment