how to create age calculating app using python

Posted by Suraj Singh on February 18, 2017 · 18 mins read

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 91011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889` `#!/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://www.bitforestinfo.com# This Script is Written By__author__='''###################################################### By ###################################################### Suraj Singh surajsinghbisht054@gmail.com http://www.bitforestinfo.com/ ######################################################'''print __author__# Import Moduleimport reimport datetime# pattern For Checking Valid Time Formatpattern = "(\d{1,2})/(\d{1,2})/(\d\d\d\d).(\d{1,2}):(\d{1,2}):(\d{1,2})" # ++++ Checking Mechanism ++++++++++# Hourdef check_h(h): if h==24: h=0 else: pass return h # hour# Minutesdef check_m(m): if m==60: m=0 else: pass return m # Minute# Secondsdef check_s(s): if s==60: s=0 else: pass return s # Main Functiondef 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 datadef age(data): input_time=data try: d = datetime.date(int(input_time[2]), int(input_time[1]), int(input_time[0])) # Time t = datetime.time(check_h(int(input_time[3])), check_m(int(input_time[4])), check_s(int(input_time[5]))) # 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 "[*] readers... ", 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)[0]).__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 99100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139` `#!/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://www.bitforestinfo.com# This Script is Written By__author__='''###################################################### By ###################################################### Suraj Singh surajsinghbisht054@gmail.com http://www.bitforestinfo.com/ ######################################################'''print __author__try: import Tkinterexcept: import tkinter as Tkinterimport dob# Formatprintdate = """ 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() returnclass 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)[0]),str(divmod(int(age),365)[1]))) 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[0]).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[1]).grid(row=1, column=3) Tkinter.Label(self, text="/").grid(row=1, column=4) Tkinter.Entry(self, width=6, textvariable=self.variables[2]).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[3]).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[4]).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[5]).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) returnclass 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() returnif __name__ == '__main__': main()`

You Can also Check Below Video For More Detailed Explanations