Last active 1595176589

a rough python mockup implementation of the qlocktwo clock

Alyssa Smith revised this gist 1595184640. Go to revision

1 file changed, 20 insertions, 3 deletions

qlocktwo-v0.1.py renamed to qlocktwo.py

@@ -1,12 +1,26 @@
1 1 from datetime import datetime
2 + from textwrap import wrap
2 3
3 4 hour = ["twelve", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven"]
4 - letters = "ITLISASAMPMACQUARTERDCTWENTYFIVEXHALFSTENFTOPASTERUNINEONESIXTHREEFOURFIVETWOEIGHTELEVENSEVENTWELVETENSEOCLOCK"
5 + letters = "ITLISASAMPMACQUARTERDCTWENTYFIVEXHALFSTENFTOPASTERUNINEONESIXTHREEFOURFIVETWOEIGHTELEVENSEVENTWELVETENSEOCLOCK" # 110 letters
6 +
7 + def get_led_matrix():
8 + out = "0" * len(letters)
9 + time = get_time_in_words()
10 + for word in time.split():
11 + start = find_substr_in_str(word.upper(), letters)
12 + end = start + len(word)
13 + out = out[:start] + "1" * len(word) + out[end:]
14 + return out
15 +
16 + def find_substr_in_str(needle, haystack):
17 + for c in range(0,len(haystack)):
18 + if haystack[c:c+len(needle)] == needle:
19 + return c
5 20
6 21 def get_time_in_words(time=None):
7 22 if not time:
8 23 time = datetime.now()
9 - print(time)
10 24 h,m = hour[time.hour%12], time.minute
11 25 if time.second > 30:
12 26 m += 1
@@ -37,4 +51,7 @@ def get_time_in_words(time=None):
37 51 return f"five to {h}"
38 52
39 53 if __name__ == "__main__":
40 - print(get_time_in_words())
54 + print(datetime.now())
55 + print(get_time_in_words())
56 + print("\n".join(wrap(get_led_matrix(),11)))
57 + print("\n".join(wrap(letters,11)))

Alyssa Smith revised this gist 1595183891. Go to revision

1 file changed, 40 insertions

qlocktwo-v0.1.py(file created)

@@ -0,0 +1,40 @@
1 + from datetime import datetime
2 +
3 + hour = ["twelve", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven"]
4 + letters = "ITLISASAMPMACQUARTERDCTWENTYFIVEXHALFSTENFTOPASTERUNINEONESIXTHREEFOURFIVETWOEIGHTELEVENSEVENTWELVETENSEOCLOCK"
5 +
6 + def get_time_in_words(time=None):
7 + if not time:
8 + time = datetime.now()
9 + print(time)
10 + h,m = hour[time.hour%12], time.minute
11 + if time.second > 30:
12 + m += 1
13 + m = round(m/5)*5
14 + if m == 0:
15 + return f"it is {h} oclock"
16 + elif m == 5:
17 + return f"five past {h}"
18 + elif m == 10:
19 + return f"ten past {h}"
20 + elif m == 15:
21 + return f"quarter past {h}"
22 + elif m == 20:
23 + return f"twenty past {h}"
24 + elif m == 25:
25 + return f"twentyfive past {h}"
26 + elif m == 30:
27 + return f"half past {h}"
28 + elif m == 35:
29 + return f"twentyfive to {h}"
30 + elif m == 40:
31 + return f"twenty to {h}"
32 + elif m == 45:
33 + return f"quarter to {h}"
34 + elif m == 50:
35 + return f"ten to {h}"
36 + elif m == 55:
37 + return f"five to {h}"
38 +
39 + if __name__ == "__main__":
40 + print(get_time_in_words())
Newer Older