Namaste Friends,

### In Today's Tutorial, I am going to teach how you can easily create an age calculating app using python language.

#### Introduction

Well, In the life of any human being, Age also plays a very important role and Today's Modern world also make it necessary to remember your age. let assume that you working on a computer like any type of Data entry Job and you, again and again, have to calculate the age of client from his/her Date of birth. Yeah, This process is time-consuming and boring.

So, Now let's assume that you created a python script that can calculate age in milliseconds. wow! problem solved.. hahaha...

By The Way, i created this script only for practice purpose so, if you also want to polish your skill then Just take a Try. This Python Script Is Very Easy But Useful. Because Many Times, We Need To Know On Which Day You Born. And What Is Your Correct Age. Or We have to deal with various date and time problems. Therefore this project is going to give you a clear and basic idea actually how you can deal with data and time functions and modules.

#### How it's Going to Work

Well, Here I am going to create 2 scripts. first one is dob.py which is completely responsible for all date and time function operations and Another Script main.py, which is responsible for Graphical User Interface. In Dob.py, I am going to use DateTime module to play with date and time functions, regular expression module to check user inputs. In main.py, Tkinter for Graphics And Etc Etc.

Because Every Function and codes are clearly visible in Codes. I am going to left Furthur Exercise For readers to Understand it on your own.

Don't worry, For Queries and Suggestion You can use Comment Box.

#### Example Codes Of Age Calculator

Today, For This Purpose We Will Use Python DateTime module.

Here, I am Sharing My Demo Codes But If You Want More Better Example Then, You Can Modify these codes yourself or Download This Script From My GitHub repository (link given at the end of these codes ).

1. dob.py

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89``` ```#!/usr/bin/python # -*- coding: utf-8 -*- # ---------------- READ ME --------------------------------------------- # This Script is Created Only For Practise And Educational Purpose Only # This Script Is Created For http://bitforestinfo.blogspot.in # This Script is Written By __author__=''' ###################################################### By S.S.B Group ###################################################### Suraj Singh Admin S.S.B Group surajsinghbisht054@gmail.com http://bitforestinfo.blogspot.in/ Note: We Feel Proud To Be Indian ###################################################### ''' print __author__ # Import Module import re import datetime # pattern For Checking Valid Time Format pattern = "(\d{1,2})/(\d{1,2})/(\d\d\d\d).(\d{1,2}):(\d{1,2}):(\d{1,2})" # ++++ Checking Mechanism ++++++++++ # Hour def check_h(h): if h==24: h=0 else: pass return h # hour # Minutes def check_m(m): if m==60: m=0 else: pass return m # Minute # Seconds def check_s(s): if s==60: s=0 else: pass return s # Main Function def main(data): # Matching Pattern if re.match(pattern, data): data=[i.rjust(2, '0') for i in re.match(pattern, data).groups()] else: data=None return data def age(data): input_time=data try: d = datetime.date(int(input_time), int(input_time), int(input_time)) # Time t = datetime.time(check_h(int(input_time)), check_m(int(input_time)), check_s(int(input_time))) # Combine Date And Time b_dt = datetime.datetime.combine(d,t) # Today Time t_dt = datetime.datetime.today() return [abs(t_dt-b_dt).days,b_dt,t_dt] except EOFError as e: print "[*] Something Wrong.." print "[*] Friend... ", e return if __name__ == '__main__': formated_time = main(raw_input("[+] Enter Date In dd/mm/year hh:mm:ss ")) # Formated Date print datetime.timedelta(days=age(formated_time)).__str__() ```

if you want with Gui(Graphical User Interface) Then Check This.

and here, its python code.

2. main.py

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139``` ```#!/usr/bin/python # -*- coding: utf-8 -*- # # ---------------- READ ME --------------------------------------------- # This Script is Created Only For Practise And Educational Purpose Only # This is an Example Of Tkinter Canvas Graphics # This Script Is Created For http://bitforestinfo.blogspot.in # This Script is Written By __author__=''' ###################################################### By S.S.B Group ###################################################### Suraj Singh Admin S.S.B Group surajsinghbisht054@gmail.com http://bitforestinfo.blogspot.in/ Note: We Feel Proud To Be Indian ###################################################### ''' print __author__ try: import Tkinter except: import tkinter as Tkinter import dob # Format printdate = """ Date : \t{0:%d} Month : \t{0:%B} Year : \t{0:%Y} Day : \t{0:%A} Hour : \t{0:%I} Minute : \t{0:%M} Second : \t{0:%S} Period : \t{0:%p} Standard Date {0:%d}/{0:%B}/{0:%Y} {0:%A} {0:%I}:{0:%M}:{0:%S} {0:%p} """ printage="""Age In Days : {} Days In Year : {} Years {} days """ def main(): root=Tkinter.Tk(className=" Age Calculator") storeobj=MFrame(root, text="Input Fields") storeobj.pack(padx=20,pady=20,ipadx=20,ipady=20,expand="yes",fill='both') storeobj1=NFrame(root, text="Output Fields") storeobj1.pack(padx=20,pady=20,ipadx=20,ipady=20,expand="yes",fill='both') main_variable = Tkinter.StringVar() main_variable.set(printdate) storeobj.main_variable = main_variable storeobj1.main_variable = main_variable storeobj1.create_label() root.mainloop() return class MFrame(Tkinter.LabelFrame): def __init__(self, *args, **kwargs): Tkinter.LabelFrame.__init__(self,*args, **kwargs) self.main_variable=None self.all_function_trigger() def all_function_trigger(self): self.create_variables() self.create_labels_() self.create_date_spin_box() self.create_time_spin_box() self.create_excecute_button() return def run_command(self): lt=[] for i in self.variables: lt.append(i.get()) data= [i.get().rjust(2,"0") for i in self.variables] age,born,today = dob.age(data) self.main_variable.set(printdate.format(born)+printage.format(age,str(divmod(int(age),365)),str(divmod(int(age),365)))) print self.main_variable.get() return def create_excecute_button(self): Tkinter.Button(self,text="Calculate",width=15, command=self.run_command, relief="raised").grid(row=10, column=0, columnspan=6) return def create_variables(self): self.variables=[] for i in [1,1,1970,1,59,59]: storeobj=Tkinter.StringVar() storeobj.set(i) self.variables.append(storeobj) return def create_date_spin_box(self): Tkinter.Label(self, text="dd/mm/yyyy").grid(row=1,column=0) Tkinter.Spinbox(self, from_=1,to_=31, width=3, textvariable=self.variables).grid(row=1, column=1) Tkinter.Label(self, text="/").grid(row=1, column=2) Tkinter.Spinbox(self, from_=1,to_=12, width=3, textvariable=self.variables).grid(row=1, column=3) Tkinter.Label(self, text="/").grid(row=1, column=4) Tkinter.Entry(self, width=6, textvariable=self.variables).grid(row=1, column=5) return def create_time_spin_box(self): Tkinter.Label(self, text="hh:mm:ss").grid(row=5,column=0) Tkinter.Spinbox(self, from_=1,to_=24, width=3, textvariable=self.variables).grid(row=5, column=1) Tkinter.Label(self, text=":").grid(row=5, column=2) Tkinter.Spinbox(self, from_=1,to_=60, width=3, textvariable=self.variables).grid(row=5, column=3) Tkinter.Label(self, text=":").grid(row=5, column=4) Tkinter.Spinbox(self, from_=1,to_=60, width=3, textvariable=self.variables).grid(row=5, column=5) return def create_labels_(self): Tkinter.Label(self, text="Date").grid(row=0, column=0, columnspan=4) Tkinter.Label(self, text="Time").grid(row=3, column=0, columnspan=4) return class NFrame(Tkinter.LabelFrame): def __init__(self, *args, **kwargs): Tkinter.LabelFrame.__init__(self, *args, **kwargs) self.main_variable=None def create_label(self): Tkinter.Label(self, textvariable=self.main_variable, justify="left").pack() return if __name__ == '__main__': main() ```

You Can also Check Below Video For More Detailed Explanations

For More Update, Visit Our Blog Regularly.
And Subscribe Our Blog,

Follow Us and share it.
For Any Type of Suggestion Or Help
Contact me:
S.S.B
surajsinghbisht054@gmail.com