From cd88c1d86c1fbac87e2c089be659520913f3cd61 Mon Sep 17 00:00:00 2001 From: San Jacobs Date: Sun, 3 Oct 2021 22:27:40 +0200 Subject: More basic functionality --- satscalc.py | 38 ++++++++++++++++++++++++++++++++------ 1 file changed, 32 insertions(+), 6 deletions(-) diff --git a/satscalc.py b/satscalc.py index 878ba76..6e733cc 100755 --- a/satscalc.py +++ b/satscalc.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -import time +import datetime # TODO: Prompt user for base rate, call time, wrap time, whether overtime was warned, and if it was a weekend. # This should be enough to calculate the pay for a single day's work. @@ -9,12 +9,38 @@ hourly_rate = baserate/7.5 print("Hourly rate:", str(hourly_rate)) -# TODO: Investigate if storing multiple calltimes and wraptimes will require a custom datastructure +print("\nTime to add your hours of work.") + +def timeInput(prompt): + while True: + i = input(prompt) + if i=="": return "" + elif len(i)==4: break + print("Wrong format. Try again.") + + t = datetime.datetime.strptime(i,"%H%M") + + return t while True: - # TODO: Check for valid format - calltime = input("Your call time (hhmm): ") - if calltime == "done": + calltime = timeInput("Your call time (24-hour format, hhmm. Leave blank to continue.): ") + if calltime == "": break - wraptime = input("Your wrap time (hhmm): ") + wraptime = timeInput("Your wrap time (24-hour format, hhmm): ") + + # Make sure we're not traveling backwards in time + if wraptime < calltime: + wraptime = wraptime.replace(day=wraptime.day+1) + difference = wraptime-calltime + hours_worked = difference.total_seconds()/3600 + # TODO: This part makes no sense. Don't worry. It'll be made to make sense. + + input("Was this a weekend? [y/n]: ") + + if hours_worked > 8: + print("Overtime detected.") + input("Was this overtime warned about before 12 o'clock the day before? [y/n]: ") + +print("\nDifference:",difference) +print("Hours worked:",hours_worked) -- cgit v1.2.1