# ------------------------------------------------------------------------
# Assignment: South African ID Decoder
# Student Number: 216009949
# ID Number Used: 9209225604088
# ------------------------------------------------------------------------
from datetime import date
# -------- Function to decode South African ID ----------------
def decode_sa_id(id_number):
"""
Decodes SA ID into:
- Date of Birth
- Age
- Gender
- Citizenship
"""
year = int(id_number[0:2])
month = int(id_number[2:4])
day = int(id_number[4:6])
# Convert to full year (1992 because 92 >= 50? No, here it's 1992)
year += 1900 if year >= 50 else 2000
# Date of birth
dob = date(year, month, day)
# Age calculation
today = date.today()
age = today.year - dob.year - ((today.month, today.day) < (dob.month, dob.day))
# Gender check
gender_code = int(id_number[6:10])
gender = "Male" if gender_code >= 5000 else "Female"
# Citizenship check
citizenship = "SA Citizen" if id_number[10] == "0" else "Permanent Resident"
# Display results
print("===== SOUTH AFRICAN ID DETAILS =====")
print(f"ID Number: {id_number}")
print(f"Date of Birth: {dob.strftime('%d %B %Y')}")
print(f"Age: {age}")
print(f"Gender: {gender}")
print(f"Citizenship: {citizenship}")
# -------- MAIN PROGRAM ----------------
def main():
id_number = "9209225604088" # Your given ID
decode_sa_id(id_number)
# Run program
if __name__ == "__main__":
main()