• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

Календарь

r4ket4

Member
13.02.2024
7
0
BIT
33
Хаюшки! Нужен календарик с возможностью помечать скажем каждый третий день от текущей даты. На питоне вроде можно дохера чего намутить (модуль calendar), но у меня мышление=0 - лох короче.
 
Решение
Python:
from colorama import Fore
from datetime import datetime
import calendar


def painting_one_day(target_month):
    ''' Функция окрашивает один день в календаре'''
 
    # Получаем сегодняшний день
    curr_day = datetime.now().day
    # Форматируем
    curr_day = "{:>2}".format(curr_day)
    # Окрашиваем
    colored_day = f'{Fore.GREEN}{curr_day}{Fore.RESET}'

    if curr_day in target_month:
        target_month = target_month.replace(f'{curr_day}', f'{colored_day}', 1)

    print(target_month)


def painting_slice(target_month, step=3):
    ''' Функция окрашивает дни в календаре с указанным шагом'''

    # Получаем количество дней в месяце
    days_month = calendar.monthrange(curr_year, curr_month)[1]
 
    # Получаем сегодняшний...

f22

Codeby Academy
Gold Team
05.05.2019
1 928
226
BIT
1 696
Python:
from colorama import Fore
from datetime import datetime
import calendar


def painting_one_day(target_month):
    ''' Функция окрашивает один день в календаре'''
 
    # Получаем сегодняшний день
    curr_day = datetime.now().day
    # Форматируем
    curr_day = "{:>2}".format(curr_day)
    # Окрашиваем
    colored_day = f'{Fore.GREEN}{curr_day}{Fore.RESET}'

    if curr_day in target_month:
        target_month = target_month.replace(f'{curr_day}', f'{colored_day}', 1)

    print(target_month)


def painting_slice(target_month, step=3):
    ''' Функция окрашивает дни в календаре с указанным шагом'''

    # Получаем количество дней в месяце
    days_month = calendar.monthrange(curr_year, curr_month)[1]
 
    # Получаем сегодняшний день
    today = datetime.now().day

    # Пробегаем по всем дням начиная с сегодняшнего
    for day in range(today, days_month + 1, step):
        # Форматируем
        curr_day = "{:>2}".format(day)
        # Окрашиваем
        target_month = target_month.replace(f'{curr_day}', f'{Fore.GREEN}{curr_day}{Fore.RESET}', 1)
    print(target_month)

if __name__ == "__main__":
    curr_year = datetime.now().year
    curr_month = datetime.now().month
    month_output = calendar.month(curr_year, curr_month)
  
    painting_one_day(month_output)
    painting_slice(month_output)
 
Последнее редактирование:
Решение
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!