Alyssa Smith revised this gist . 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 . 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()) | |