Ejemplo n.º 1
0
def _launch():
    parser = argparse.ArgumentParser(
        prog='python -m age_calc',
        description=__doc__,
    )
    parser.add_argument('-gui', '--use-gui', action='store_true', default=False)
    parser.add_argument('-dob', '--date-of-birth', action='store', default=None, nargs=1)
    parser.add_argument('-v', '--version', action='store_true', default=False)
    args = parser.parse_args()
    if args.version:
        print('Age Calculator version 1.0')
        exit(0)
    if args.use_gui:
        root = Tk()
        root.wm_title('Calculate Age')
        app = CalcGui(root)
        root.mainloop()
    elif args.date_of_birth:
        calc = Calculator()
        print('As of today the age is: {age}'.format(age=calc.age_as_of_today(dob=args.date_of_birth[0])))
    else:
        parser.print_usage()
Ejemplo n.º 2
0
class CalcGui(object):
    def __init__(self, master):
        self.set_values()
        self.calc = Calculator()
        today = date.today()
        self.select_label = ttk.Label(master=master, text='DOB:')
        self.select_month = ttk.Combobox(master=master, textvariable=self.month, values=self.months)
        self.select_day = Spinbox(master=master, from_=1, to=31, textvariable=self.day)
        self.select_year = Spinbox(master=master, from_=1900, to=int(today.year), textvariable=self.year)
        # ttk.Combobox(master=master, textvariable=self.year, values=self.years)
        self.calc_age_button = ttk.Button(master=master, text='Calculate Age', command=self.age)
        self.age_label = ttk.Label(master=master, text='AGE NOT YET CALCULATED')
        self.select_label.grid(row=0, column=0)
        self.select_month.grid(row=0, column=1)
        self.select_day.grid(row=0, column=2)
        self.select_year.grid(row=0, column=3)
        self.calc_age_button.grid(row=0, column=4)
        self.age_label.grid(row=1, column=0, columnspan=5)
        self.set_defaults()

    def age(self):
        age = self.calculate_age()
        label_text = 'DOB: {m} {d}, {y}\tAGE:{a}'.format(
            m=self.month.get(),
            d=self.day.get(),
            y=self.year.get(),
            a=age
        )
        self.age_label.config(text=label_text)

    def set_values(self):
        self.month = StringVar()
        self.year = IntVar()
        self.day = IntVar()
        self.months = ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec')

    def set_defaults(self):
        self.select_month.set('Jun')
        self.day.set('9')
        self.year.set('1980')

    def calculate_age(self):
        """
        Calculate Age, Method to calculate the age today.
        :param birth_date: DATETIME
        :return: Int
        """
        dob_year = int(self.year.get())
        dob_month = int(self.months.index(self.month.get()) + 1)
        dob_day = int(self.day.get())
        return self.calc.age_as_of_today(month=dob_month, day=dob_day, year=dob_year)
Ejemplo n.º 3
0
 def __init__(self, master):
     self.set_values()
     self.calc = Calculator()
     today = date.today()
     self.select_label = ttk.Label(master=master, text='DOB:')
     self.select_month = ttk.Combobox(master=master, textvariable=self.month, values=self.months)
     self.select_day = Spinbox(master=master, from_=1, to=31, textvariable=self.day)
     self.select_year = Spinbox(master=master, from_=1900, to=int(today.year), textvariable=self.year)
     # ttk.Combobox(master=master, textvariable=self.year, values=self.years)
     self.calc_age_button = ttk.Button(master=master, text='Calculate Age', command=self.age)
     self.age_label = ttk.Label(master=master, text='AGE NOT YET CALCULATED')
     self.select_label.grid(row=0, column=0)
     self.select_month.grid(row=0, column=1)
     self.select_day.grid(row=0, column=2)
     self.select_year.grid(row=0, column=3)
     self.calc_age_button.grid(row=0, column=4)
     self.age_label.grid(row=1, column=0, columnspan=5)
     self.set_defaults()