Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import datetime
- #Useful Functions
- def clamp(n, minn, maxn):
- return max(min(maxn, n), minn)
- def ncomma(x):
- return "{:,}".format(x)
- def getints(q,op):
- add = 0
- first = 0
- second = 0
- offset = 0
- err0 = "Mathematical Error"
- for i in q:
- if i != op:
- add += 1
- else:
- break
- #print(q[add:])
- #print(q[add:add + 2])
- if q[add:add + 2] == op + " ":
- offset = add + 2
- elif q[add:add + 1] == op:
- offset = add + 1
- else:
- print(err0)
- return 0
- first = int(q[:add])
- second = int(q[offset:])
- #Validation
- if first - (first - 1) != 1:
- return 0
- if second - (second - 1) != 1:
- return 0
- return first,second
- # Actual Programs
- def getdateformated():
- intime = datetime.datetime.now()
- ampm = ""
- hour = 0
- time = ""
- gmt = input ("Please write your local greenwich mean time code.")
- monthlist = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
- month = monthlist[intime.month - 1]
- dayappend = ["st","nd","rd","th"]
- dayint = intime.day
- day = str(dayint) + dayappend[clamp(dayint,1,4) - 1]
- dayname = intime.strftime("%A")
- if gmt[:1] == "+":
- #print("it's " + str(intime.hour + int(gmt[1:])) + ":" + str(intime.minute))
- hour = intime.hour + int(gmt[1:])
- #print("add")
- elif gmt[:1] == "-":
- #print("it's " + str(intime.hour - int(gmt[1:])) + ":" + str(intime.minute))
- hour = intime.hour - int(gmt[1:])
- #print("sub")
- elif gmt[:1] == "0":
- #print("it's " + str(intime.hour) + ":" + str(intime.minute))
- hour = intime.hour
- else:
- print("Error: Wrong GMT code written. Please write it again.")
- return False
- if hour > 12:
- ampm = " PM"
- hour -= 12
- elif hour < 12:
- ampm = " AM"
- time = str(hour) + ":" + str(intime.minute) + ampm
- print("it's " + dayname + " the " + day + " of " + month + ", " + str(intime.year) + ". " + time)
- #Mathematic Function
- def domath(q):
- first = 0
- second = 0
- result = 0
- op = ""
- if "+" in q:
- op = "+"
- elif "-" in q:
- op = "-"
- elif "*" in q:
- op = "*"
- elif "/" in q:
- op = "/"
- if getints(q,op) == 0:
- return
- elif getints(q,op) != 0:
- first,second = getints(q,op)
- if op == "+":
- result = first + second
- elif op == "-":
- result = first - second
- elif op == "*":
- result = first * second
- elif op == "/":
- result = first / second
- print(q + " is " + ncomma(result))
- def core():
- q = input("Please ask me a question.")
- if "date" in q or "time" in q:
- getdateformated()
- elif "+" in q or "-" in q or "*" in q or "/" in q:
- domath(q)
- core()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement