අලුත් NIC එකට පොඩි කෝඩ් කෑල්ල්ක් ලිව්ව. ඕනෙ විදියට වෙනස් කරගෙන පොඩ්ඩක් ටෙස්ට් කොරල බලල කියන්න හරිද කියල. ඕනෙ ප්රොජෙක්ට් වලට ගෙඩිය පිටින්ම උස්සල පාවිච්චි කරන්න. වැරදි අඩුපාඩු සහිත නම් දැනුවත් කරන්න. input nic number validation එකක් කරල නෑ.
usage
Python:
from datetime import datetime, timedelta
class NicDetails:
def __init__(self, nic_number: str):
self.birthday = None
self.gender: str = ""
self.age: int = 0
self.__set_details(nic_number)
def __set_details(self, nic_number):
if len(nic_number) == 10: # OLD NIC Including 'v' or 'x'
year = int("19" + nic_number[:2])
days = int(nic_number[2:5])
else: # New NIC After 2000
year = int(nic_number[:4])
days = int(nic_number[4:7])
self.birthday = datetime(year, 1, 1) + timedelta(days - 2) # All the years are leap years, NIC coding
if days > 500:
self.gender = "Female"
days -= 500
else:
self.gender = "Male"
today = datetime.today()
self.age = today.year - self.birthday.year - (
(today.month, today.day) < (self.birthday.month, self.birthday.day))
usage
Python:
nic = NicDetails("952453462v")
print(nic.birthday)
print(nic.gender)
print(nic.age)