from turtle import *
from datetime import *
def skip(step):
penup()
fd(step)
pendown()
def mkhand(name,length):
reset()
skip(-length*0.1)
begin_poly()
fd(length*1.1)
end_poly()
handform = get_poly()
register_shape(name,handform)
def init():
global sechand,minhand,hurhand,printer
mode("logo") #重置turtle指向北
mkhand("sechand",125)
mkhand("minhand",130)
mkhand("hurhand",90)
sechand = Turtle()
sechand.shape("sechand")
minhand = Turtle()
minhand.shape("minhand")
hurhand = Turtle()
hurhand.shape("hurhand")
for hand in sechand,minhand,hurhand:
hand.shapesize(100,1,3)
hand.speed(0)
printer = Turtle()
printer.hideturtle ()
printer.penup()
def setupclock(radius):
reset()
pensize(7)
for i in range(60):
skip(radius)
if i % 5 == 0:
fd(20)
skip(-radius-20)
else:
dot(5)
skip(-radius)
right(6)
def week(t):
week = ["星期一","星期二","星期三","星期四","星期五","星期六","星期日"]
return week[t.weekday()]
def date(t):
y = t.year
m = t.month
d = t.day
return "%s年%d月%d日" % (y,m,d)
def tick():
t = datetime.today()
second = t.second + t.microsecond*0.000001
minute = t.minute + second/60.0
hour = t.hour + minute/60.0
sechand.setheading(6*second)
minhand.setheading(6*minute)
hurhand.setheading(30*hour)
tracer(False)
printer.fd(65)
printer.write(week(t),align='center',font=("Courier",14,"bold"))
printer.back(130)
printer.write(date(t),align='center',font=("Courier",14,"bold"))
printer.home()
tracer(True)
ontimer(tick,10) #每10ms调用一次tick函数
def main():
tracer(False)
init()
setupclock(160)
tracer(True)
tick()
mainloop()
main()
'''if __name__ == '__main()__':
main()'''