1
- # -*- coding: cp1252 -*-
2
1
""" turtle-example-suite:
3
2
4
- tdemo_clock .py
3
+ turtledemo/clock .py
5
4
6
5
Enhanced clock-program, showing date
7
6
and time
12
11
from turtle import *
13
12
from datetime import datetime
14
13
14
+ dtfont = "TkFixedFont" , 14 , "bold"
15
+ current_day = None
16
+
15
17
def jump (distanz , winkel = 0 ):
16
18
penup ()
17
19
right (winkel )
@@ -52,11 +54,23 @@ def clockface(radius):
52
54
jump (- radius )
53
55
rt (6 )
54
56
57
+ def display_date_time ():
58
+ global current_day
59
+ writer .clear ()
60
+ now = datetime .now ()
61
+ current_day = now .day
62
+ writer .home ()
63
+ writer .forward (distance = 65 )
64
+ writer .write (wochentag (now ), align = "center" , font = dtfont )
65
+ writer .back (distance = 150 )
66
+ writer .write (datum (now ), align = "center" , font = dtfont )
67
+ writer .forward (distance = 85 )
68
+
55
69
def setup ():
56
70
global second_hand , minute_hand , hour_hand , writer
57
71
mode ("logo" )
58
72
make_hand_shape ("second_hand" , 125 , 25 )
59
- make_hand_shape ("minute_hand" , 130 , 25 )
73
+ make_hand_shape ("minute_hand" , 115 , 25 )
60
74
make_hand_shape ("hour_hand" , 90 , 25 )
61
75
clockface (160 )
62
76
second_hand = Turtle ()
@@ -74,10 +88,10 @@ def setup():
74
88
hand .speed (0 )
75
89
ht ()
76
90
writer = Turtle ()
77
- #writer.mode("logo")
78
91
writer .ht ()
79
92
writer .pu ()
80
93
writer .bk (85 )
94
+ display_date_time ()
81
95
82
96
def wochentag (t ):
83
97
wochentag = ["Monday" , "Tuesday" , "Wednesday" ,
@@ -99,18 +113,11 @@ def tick():
99
113
stunde = t .hour + minute / 60.0
100
114
try :
101
115
tracer (False ) # Terminator can occur here
102
- writer .clear ()
103
- writer .home ()
104
- writer .forward (65 )
105
- writer .write (wochentag (t ),
106
- align = "center" , font = ("Courier" , 14 , "bold" ))
107
- writer .back (150 )
108
- writer .write (datum (t ),
109
- align = "center" , font = ("Courier" , 14 , "bold" ))
110
- writer .forward (85 )
111
116
second_hand .setheading (6 * sekunde ) # or here
112
117
minute_hand .setheading (6 * minute )
113
118
hour_hand .setheading (30 * stunde )
119
+ if t .day != current_day :
120
+ display_date_time ()
114
121
tracer (True )
115
122
ontimer (tick , 100 )
116
123
except Terminator :
0 commit comments