Мы пытаемся показать календарь на дисплее e-ink, связанный с календарем Google. Мы можем отобразить весь месяц, но мы хотим, чтобы отображалась только одна неделя, и когда она заканчивается, она изменит неделю, прошедшую на следующую неделю.
Мы попытались создатьциклы с использованием "if" и "else", но мы пока не смогли заставить его правильно работать с ними.
positions = {
# positions the code block to appear on certain columns and rows
'a1': (col1, row1), 'a2': (col2, row1), 'a3': (col3, row1), 'a4': (col4, row1),
'a5': (col5, row1), 'a6': (col6, row1), 'a7': (col7, row1),
'b1': (col1, row2), 'b2': (col2, row2), 'b3': (col3, row2), 'b4': (col4, row2),
'b5': (col5, row2), 'b6': (col6, row2), 'b7': (col7, row2),
'c1': (col1, row3), 'c2': (col2, row3), 'c3': (col3, row3), 'c4': (col4, row3),
'c5': (col5, row3), 'c6': (col6, row3), 'c7': (col7, row3),
'd1': (col1, row4), 'd2': (col2, row4), 'd3': (col3, row4), 'd4': (col4, row4),
'd5': (col5, row4), 'd6': (col6, row4), 'd7': (col7, row4),
'e1': (col1, row5), 'e2': (col2, row5), 'e3': (col3, row5), 'e4': (col4, row5),
'e5': (col5, row5), 'e6': (col6, row5), 'e7': (col7, row5),
'f1': (col1, row6), 'f2': (col2, row6), 'f3': (col3, row6), 'f4': (col4, row6),
'f5': (col5, row6), 'f6': (col6, row6), 'f7': (col7, row6)
}
Это из другого файла .py, который вызывает позиции.
"" "Используя встроенную функцию календаря, нарисуйте значки для каждого номера месяца (1,2,3, ... 28,29,30)" "" cal = calendar.monthcalendar (time.year, time.month)
while True:
if numbers in cal[0]:
image.paste(im_open(dpath+str(numbers)+'.jpeg'), positions['a'+str(cal[0].index(numbers)+1)])
elif numbers in cal[1]:
image.paste(im_open(dpath+str(numbers)+'.jpeg'), positions['b'+str(cal[1].index(numbers)+1)])
elif numbers in cal[2]:
image.paste(im_open(dpath+str(numbers)+'.jpeg'), positions['c'+str(cal[2].index(numbers)+1)])
elif numbers in cal[3]:
image.paste(im_open(dpath+str(numbers)+'.jpeg'), positions['d'+str(cal[3].index(numbers)+1)])
elif numbers in cal[4]:
image.paste(im_open(dpath+str(numbers)+'.jpeg'), positions['e'+str(cal[4].index(numbers)+1)])
elif len(cal) is 6:
break
else numbers in cal[5]:
image.paste(im_open(dpath+str(numbers)+'.jpeg'), positions['f'+str(cal[5].index(numbers)+1)])
Мы ожидаем, что он будет показан, например, с понедельника 2 по воскресенье 8, а затем изменится с понедельника 9 на воскресенье 16, когда дата изменится с 8 на 9. Наши фактические результаты на данный момент - это либо показы за весь месяц, либо показы за неделю, но они могут показывать неправильную неделю и / или не изменяться, когда неделя увеличивается.