From 9e15df0b455def8ef1b03a3b111bc0ff362b9f0e Mon Sep 17 00:00:00 2001 From: AlyonaLuk <157985330+AlyonaLuk@users.noreply.github.com> Date: Fri, 29 Nov 2024 17:15:01 +0300 Subject: [PATCH] Create divingintopython --- divingintopython | 65 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 divingintopython diff --git a/divingintopython b/divingintopython new file mode 100644 index 0000000..e062fd1 --- /dev/null +++ b/divingintopython @@ -0,0 +1,65 @@ +#Zadanie 1 +import logging +# Настройка логирования +logger = logging.getLogger() +logger.setLevel(logging.DEBUG) +# Форматтер для сообщений +formatter = logging.Formatter('%(asctime)s - %(levelname)s - +%(message)s') +# Обработчик для сообщений уровня DEBUG и INFO +debug_info_handler = logging.FileHandler('debug_info.log') +debug_info_handler.setLevel(logging.DEBUG) +debug_info_handler.setFormatter(formatter) +logger.addHandler(debug_info_handler) +# Обработчик для сообщений уровня WARNING и выше +warnings_errors_handler = logging.FileHandler('warnings_errors.log') +warnings_errors_handler.setLevel(logging.WARNING) +warnings_errors_handler.setFormatter(formatter) +logger.addHandler(warnings_errors_handler) +# Логирование сообщений различных уровней +logger.debug('Это сообщение уровня DEBUG.') +logger.info('Это сообщение уровня INFO.') +logger.warning('Это сообщение уровня WARNING.') +logger.error('Это сообщение уровня ERROR.') +logger.critical('Это сообщение уровня CRITICAL.') + +#Задание 2 +from datetime import datetime +def display_current_datetime(): +# Получение текущего времени и даты +now = datetime.now() +# Форматирование даты и времени +formatted_date = now.strftime('%Y-%m-%d %H:%M:%S') +# Получение дня недели и номера недели +day_of_week = now.strftime('%A') +week_number = now.isocalendar()[1] +print(f'Current date and time: {formatted_date}') +print(f'Day of the week: {day_of_week}') +print(f'Week number: {week_number}') +if __name__ == '__main__': +display_current_datetime() + +#Zadanie3 +from datetime import datetime, timedelta +def future_date(days_from_now): +""" +Возвращает дату, которая наступит через указанное количество +дней от текущей даты. +:param days_from_now: Количество дней от текущей даты. +:return: Отформатированная дата в формате YYYY-MM-DD. +Примеры: +>>> future_date(30) +'2024-09-08' +>>> future_date(-10) +'2024-07-30' +""" +# Получение текущей даты и времени +today = datetime.now() +# Вычисление даты через указанное количество дней +future_date = today + timedelta(days=days_from_now) +# Форматирование будущей даты в строку в формате YYYY-MM-DD +formatted_future_date = future_date.strftime('%Y-%m-%d') +return formatted_future_date +if __name__ == '__main__': +days = 30 # Количество дней для вычисления +print(f'Date {days} days from now: {future_date(days)}')