Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 65 additions & 0 deletions divingintopython
Original file line number Diff line number Diff line change
@@ -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)}')