Age Calculator

from tkinter import *

from tkinter import messagebox

def clearAll() :

    dayField.delete(0, END)

    monthField.delete(0, END)

    yearField.delete(0, END)

    givenDayField.delete(0, END)

    givenMonthField.delete(0, END)

    givenYearField.delete(0, END)

    rsltDayField.delete(0, END)

    rsltMonthField.delete(0, END)

    rsltYearField.delete(0, END)

def checkError() :

    if (dayField.get() == "" or monthField.get() == ""

        or yearField.get() == "" or givenDayField.get() == ""

        or givenMonthField.get() == "" or givenYearField.get() == "") :

        messagebox.showerror("Input Error")

        clearAll()

        return -1

def calculateAge() :

    value = checkError()

    if value == -1 :

        return

    else :

        birth_day = int(dayField.get())

        birth_month = int(monthField.get())

        birth_year = int(yearField.get())

        given_day = int(givenDayField.get())

        given_month = int(givenMonthField.get())

        given_year = int(givenYearField.get())

        month =[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

        if (birth_day > given_day):

            given_month = given_month - 1

            given_day = given_day + month[birth_month-1]

        if (birth_month > given_month):

            given_year = given_year - 1

            given_month = given_month + 12

        calculated_day = given_day - birth_day;

        calculated_month = given_month - birth_month;

        calculated_year = given_year - birth_year;

        rsltDayField.insert(10, str(calculated_day))

        rsltMonthField.insert(10, str(calculated_month))

        rsltYearField.insert(10, str(calculated_year))

if __name__ == "__main__" :

    gui = Tk()

    gui.configure(background = "light green")

    gui.title("Age Calculator")

    gui.geometry("525x260")

    dob = Label(gui, text = "Date Of Birth", bg = "light green")

    givenDate = Label(gui, text = "Given Date", bg = "light green")

    day = Label(gui, text = "Day", bg = "light green")

    month = Label(gui, text = "Month", bg = "light green")

    year = Label(gui, text = "Year", bg = "light green")

    givenDay = Label(gui, text = "Given Day", bg = "light green")

    givenMonth = Label(gui, text = "Given Month", bg = "light green")

    givenYear = Label(gui, text = "Given Year", bg = "light green")

    rsltYear = Label(gui, text = "Years", bg = "light green")

    rsltMonth = Label(gui, text = "Months", bg = "light green")

    rsltDay = Label(gui, text = "Days", bg = "light green")

    resultantAge = Button(gui, text = "Resultant Age", fg = "Black", bg = "light blue", command = calculateAge)

    clearAllEntry = Button(gui, text = "Clear All", fg = "Black", bg = "light blue", command = clearAll)

    dayField = Entry(gui)

    monthField = Entry(gui)

    yearField = Entry(gui)

    givenDayField = Entry(gui)

    givenMonthField = Entry(gui)

    givenYearField = Entry(gui)

    rsltYearField = Entry(gui)

    rsltMonthField = Entry(gui)

    rsltDayField = Entry(gui)

    dob.grid(row = 0, column = 1)

    day.grid(row = 1, column = 0)

    dayField.grid(row = 1, column = 1)

    month.grid(row = 2, column = 0)

    monthField.grid(row = 2, column = 1)

    year.grid(row = 3, column = 0)

    yearField.grid(row = 3, column = 1)

    givenDate.grid(row = 0, column = 4)

    givenDay.grid(row = 1, column = 3)

    givenDayField.grid(row = 1, column = 4)

    givenMonth.grid(row = 2, column = 3)

    givenMonthField.grid(row = 2, column = 4)

    givenYear.grid(row = 3, column = 3)

    givenYearField.grid(row = 3, column = 4)

    resultantAge.grid(row = 4, column = 2)

    rsltYear.grid(row = 5, column = 2)

    rsltYearField.grid(row = 6, column = 2)

    rsltMonth.grid(row = 7, column = 2)

    rsltMonthField.grid(row = 8, column = 2)

    rsltDay.grid(row = 9, column = 2)

    rsltDayField.grid(row = 10, column = 2)

    clearAllEntry.grid(row = 12, column = 2)

    gui.mainloop()


No comments: