an2022.py

Created by schraf

Created on September 10, 2022

1.01 KB

Calendrier 2022

Utilisez les flèches haut et bas pour naviguer dans le calendrier.

Ma playlist Youtube consacrée à la NUMWORKS

Explications du programme

from kandinsky import draw_string, fill_rect
from ion import keydown,KEY_UP,KEY_DOWN
from time import sleep

nbjMois = "303232332323" # 28 + nb de jours dans le mois (28+3 pour janv, 28 + 0 pour  février etc.)
jSem = "LMmJVSD"
mois = "Janv,Fev, Mars,Avril,Mai,Juin,Juill,Aout,Sept,Oct,Nov,Dec".split(',')

def aff(d):
    nb = 0
    v = 5 # le 1/1/2022 etait un vendredi
    for i in range(d): v += int(nbjMois[i]) # on cherche le 1er du mois n°d
    v %= 7
    while nb < 2: # Affichage de 2 mois
        m = d + nb
        for i,js in enumerate(jSem): # Ligne des jours de la semaine
            draw_string(js,10 + 30 * i, 5 + 110 * nb)
        l = 1
        for j in range(28 + int(nbjMois[m])): # on parcourt tous les jours du mois
            pos = jSem.index(jSem[v]) # dans quelle colonne est ce jour de la semaine ?
            draw_string(str(j + 1),10 + 30 * pos, 5 + 110 * nb + 15 * l)
            v = (v + 1) % 7
            if pos == 6: l += 1 # Si dimanche on passe à la ligne suivante
        draw_string(mois[m], 250, 110 * nb + 30)
        nb += 1

def eff():
    fill_rect(0,0,320,222,(255,255,255))
    sleep(.2)

def key(): # attente touche
  while True:
    for (i, k) in enumerate([KEY_UP,KEY_DOWN]):
      if keydown(k): return 2 * i - 1 # renvoyer -1 ou +1

d = 0
while True:
    aff(d)
    t = key()
    d = (d + 2 * t) % 12 # on avance ou recule dans le calendrier
    eff()


from kandinsky import draw_string, fill_rect
from ion import keydown,KEY_UP,KEY_DOWN
from time import sleep

nbjMois = "303232332323"
jSem = "LMmJVSD"
mois = "Janv,Fev, Mars,Avril,Mai,Juin,Juill,Aout,Sept,Oct,Nov,Dec".split(',')

def aff(d):
    nb = 0
    v = 5 # mettre 6 en 2023
    for i in range(d): v += int(nbjMois[i])
    v %= 7
    while nb < 2:
        m = d + nb
        for i,js in enumerate(jSem):
            draw_string(js,10 + 30 * i, 5 + 110 * nb)
        l = 1
        for j in range(28 + int(nbjMois[m])):
            pos = jSem.index(jSem[v])
            draw_string(str(j + 1),10 + 30 * pos, 5 + 110 * nb + 15 * l)
            v = (v + 1) % 7
            if pos == 6: l += 1
        draw_string(mois[m], 250, 110 * nb + 30)
        nb += 1

def eff():
    fill_rect(0,0,320,222,(255,255,255))
    sleep(.2)

def key():
  while True:
    for (i, k) in enumerate([KEY_UP,KEY_DOWN]):
      if keydown(k): return 2 * i - 1

d = 0
while True:
    aff(d)
    t = key()
    d = (d + 2 * t) % 12
    eff()