본문 바로가기
개발 일지

파이썬 터틀 그래픽으로 달력 만들기

by PrintedLove 2019. 11. 4.

학교 과제용으로 제작

 

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
from turtle import*
week = [" 일"" 월"" 화"" 수"" 목"" 금"" 토"
month_day = [312831303130313130313031
year = numinput("입력""연도를 입력하세요")  #년도값 입력 
if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:  #윤년 계산 
    month_day[1= 29 
last_week = ((year - 1* 365 + (year - 1// 4 - (year - 1// 100 + (year - 1// 400 + 1) % 7   #해당 년도의 1월 1일 요일(일[0] ~ 토[6]) 
hideturtle() 
speed(0
penup() 
goto(-380280
pencolor("black"
write("%d년" % year, font = ("Arial"25"normal"))  # 년도 출력 
printx, printy, prints, day = -380230""1  #출력 x, y좌표, 출력문, 날짜값 
for i in range(012): #월 반복문 
    pencolor("black"
    goto(printx, printy) 
    write("%d월" % int(i+1), font = ("Arial"14"normal"))  #월 출력 
    for n in range(07):  #달력 가로 반복문 
        for s in range(07):  #달력 세로 반복문 
            pencolor("black")  #색지정 
            if s == 0
                pencolor("red"
            elif s == 6
                pencolor("blue")  
            goto(printx+s*20, printy-n*20-20)  #요일 또는 날짜를 출력할 좌표로 펜 이동 
            prints = week[s]  # 출력할 값을 해당요일로 지정(출력 기본값) 
            if n>0
                if (n == 1 and s == last_week and day == 1or (day > 1 and day <= month_day[i]):  # 출력 값을 해당날짜로 지정 
                    prints = str(day) 
                    if day < 10:  # 오른쪽 정렬을 위해 10 이하일 경우 간격조정 
                         prints = "  " + str(day) 
                    day+=1 
                else
                    prints, day = ""1  # 출력값을 빈칸으로 지정, 날짜값 1로 초기화 
            write(prints, font = ("Arial"8"normal"))  # 출력 
    last_week, printx = (last_week + month_day[i] % 7) % 7, printx + 200  # 시작 요일값 계산(마지막 요일 +1), 출력 x좌표 이동 
    if printx > 400:  #x좌표값이 달력 범위를 벗어날 경우 y좌표 아래로, x좌표 초기화 
        printx, printy = -380, printy - 210 
done()
cs

 

 

출력 사진>

 

댓글