-
Notifications
You must be signed in to change notification settings - Fork 0
/
UhrzeitenApp
123 lines (96 loc) · 4.31 KB
/
UhrzeitenApp
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
import kivy
from kivy.app import App
from kivy.properties import ObjectProperty
from kivy.uix.label import Label
from kivy.uix.gridlayout import GridLayout
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder
Builder.load_file("uhrzeitenapp.kv")
class MainWindow(BoxLayout):
btn_halb = ObjectProperty(None)
btn_dreiviertel = ObjectProperty(None)
btn_viertel = ObjectProperty(None)
btn_viertelvor = ObjectProperty(None)
btn_viertelnach = ObjectProperty(None)
btn_1 = ObjectProperty(None)
btn_2 = ObjectProperty(None)
btn_3 = ObjectProperty(None)
btn_4 = ObjectProperty(None)
btn_5 = ObjectProperty(None)
btn_6 = ObjectProperty(None)
btn_7 = ObjectProperty(None)
btn_8 = ObjectProperty(None)
btn_9 = ObjectProperty(None)
btn_10 = ObjectProperty(None)
btn_11 = ObjectProperty(None)
btn_12 = ObjectProperty(None)
btn_nachmittags = ObjectProperty(None)
btn_vormittags= ObjectProperty(None)
result_label = ObjectProperty(None)
# "statements" und "daytimes" als int codiert (bringt vermutlich eine bessere runtime als Strings)
global internal_statement_dict
internal_statement_dict = {"Halb": 0, "Dreiviertel": 1, "Viertel": 2, "Viertel vor": 3, "Viertel nach": 4}
global internal_daytime_dict
internal_daytime_dict = {"vormittags": 5, "nachmittags": 6}
# Das vom user später über die UI gefüllte dict wird iniziiert
global user_dict
user_dict = {"statement": None, "input_hour": 1, "daytime": 5}
# Die später zur Ergebnisausgabe verwendete result_list wird iniziiert
global result_list
result_list = [None, ":", None]
def go(self):
# Wenn user_dict komplett gefüllt is werden die Regeln der Statements angewendet, ansonsten wird nur die unveränderte Stunde aus user_dict wiedergegeben
if user_dict["statement"] != None and user_dict["input_hour"] != None and user_dict["daytime"] != None:
if user_dict["statement"] == internal_statement_dict["Halb"]:
print("runs statementfunc_halb()")
hour = user_dict["input_hour"] - 1
minute = 30
elif user_dict["statement"] == internal_statement_dict["Dreiviertel"]:
print("runs statementfunc_dreiviertel()")
hour = user_dict["input_hour"] - 1
minute = 45
elif user_dict["statement"] == internal_statement_dict["Viertel"]:
print("runs statementfunc_viertel()")
hour = user_dict["input_hour"] - 1
minute = 15
elif user_dict["statement"] == internal_statement_dict["Viertel vor"]:
print("runs statementfunc_viertelvor()")
hour = user_dict["input_hour"] - 1
minute = 45
elif user_dict["statement"] == internal_statement_dict["Viertel nach"]:
print("runs statementfunc_viertelnach()")
hour = user_dict["input_hour"]
minute = 15
else:
hour = user_dict["input_hour"]
minute = "00"
# Prüft daytime und passt die Stunde evtl. an 24h-Format an
# Gibt die Stunde und Minute die übergeben wird in die result_list (als String)
if user_dict["daytime"] == internal_daytime_dict["vormittags"]:
result_list[0] = str(hour)
result_list[2] = str(minute)
result = "".join(result_list)
self.result_label.text = result
print(result)
else:
hour = hour + 12
result_list[0] = str(hour)
result_list[2] = str(minute)
result = "".join(result_list)
self.result_label.text = result
print(result)
def rewrite_user_dict_statement(self,x):
user_dict["statement"] = x
print("user_dict statement set on: ",user_dict["statement"])
def rewrite_user_dict_input_hour(self,x):
user_dict["input_hour"] = x
print("user_dict input_hour set on: ", user_dict["input_hour"])
def rewrite_user_dict_input_daytime(self,x):
user_dict["daytime"] = x
print("user_dict daytime set on: ", user_dict["daytime"])
class UhrzeitenApp(App):
def build(self):
return MainWindow()
if __name__ == '__main__':
UhrzeitenApp().run()