Как сделать так, чтобы в календаре отображалась неделя из месяца, а затем появлялась следующая неделя? Это для отображения электронной бумаги с использованием календарей Google - PullRequest
0 голосов
/ 16 октября 2019

Мы пытаемся показать календарь на дисплее 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. Наши фактические результаты на данный момент - это либо показы за весь месяц, либо показы за неделю, но они могут показывать неправильную неделю и / или не изменяться, когда неделя увеличивается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...