diff --git a/dmedvedev/python/14.date_and_time.ipynb b/dmedvedev/python/14.date_and_time.ipynb new file mode 100644 index 0000000..5d6daa5 --- /dev/null +++ b/dmedvedev/python/14.date_and_time.ipynb @@ -0,0 +1,263 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "901c685d", + "metadata": {}, + "source": [ + "Задача 1. Текущая дата и время + разбор на части\n", + "Напиши программу, которая:\n", + " получает текущую дату и время;\n", + " выводит:\n", + " полную дату и время;\n", + " отдельно год;\n", + " отдельно месяц;\n", + " отдельно день;\n", + " отдельно часы;\n", + " отдельно минуты;\n", + " дополнительно выводит дату в формате:\n", + " YYYY-MM-DD\n", + " DD.MM.YYYY" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "a9776c66", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Полная текущая дата и время - 2026-10-09 11:53:36.376962\n", + "Год - 2026\n", + "Месяц - 10\n", + "День - 9\n", + "Часы - 11\n", + "Минуты - 53\n", + "Формат вывода YYYY-MM-DD - 2026-10-09\n", + "Формат вывода DD.MM.YYYY - 09.10.2026\n" + ] + } + ], + "source": [ + "from datetime import datetime\n", + "now = datetime.now()\n", + "print(f\"Полная текущая дата и время - {now}\")\n", + "print(f\"Год - {now.year}\")\n", + "print(f\"Месяц - {now.month}\")\n", + "print(f\"День - {now.day}\")\n", + "print(f\"Часы - {now.hour}\")\n", + "print(f\"Минуты - {now.minute}\")\n", + "print(f\"Формат вывода YYYY-MM-DD - {now.strftime(\"%Y-%m-%d\")}\")\n", + "print(f\"Формат вывода DD.MM.YYYY - {now.strftime(\"%d.%m.%Y\")}\")" + ] + }, + { + "cell_type": "markdown", + "id": "69b619b5", + "metadata": {}, + "source": [ + "Задача 2. Работа с конкретной датой\n", + "Создай вручную дату события:\n", + "2025-12-31 18:45:00\n", + "Нужно:\n", + " вывести эту дату;\n", + " вывести отдельно:\n", + " год;\n", + " месяц;\n", + " день;\n", + " часы;\n", + " минуты;\n", + " создать ещё одну дату:\n", + " 2026-01-05 09:00:00\n", + " посчитать разницу между этими двумя датами;\n", + " вывести:\n", + " полную разницу;\n", + " количество дней." + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "id": "af9e0816", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Дата - 2025-12-31\n", + "Год - 2025\n", + "Месяц - 12\n", + "День - 31\n", + "Часы - 18\n", + "Минуты - 45\n", + "Полная разница между датами '-5 days, 9:45:00'\n", + "Разница в количестве дней -5\n" + ] + } + ], + "source": [ + "from datetime import datetime, timedelta\n", + "\n", + "date_event_str = \"2025-12-31 18:45:00\"\n", + "date_event = datetime.strptime(date_event_str, \"%Y-%m-%d %H:%M:%S\")\n", + "print(f\"Дата - {date_event.strftime(\"%Y-%m-%d\")}\") \n", + "print(f\"Год - {date_event.year}\")\n", + "print(f\"Месяц - {date_event.month}\")\n", + "print(f\"День - {date_event.day}\")\n", + "print(f\"Часы - {date_event.hour}\")\n", + "print(f\"Минуты - {date_event.minute}\")\n", + "\n", + "another_date_event_str = \"2026-01-05 09:00:00\"\n", + "another_date_event = datetime.strptime(another_date_event_str, \"%Y-%m-%d %H:%M:%S\")\n", + "differences = date_event - another_date_event\n", + "print(f\"Полная разница между датами '{differences}'\")\n", + "print(f\"Разница в количестве дней {differences.days}\")" + ] + }, + { + "cell_type": "markdown", + "id": "470d379a", + "metadata": {}, + "source": [ + "Задача 3. Прибавление и вычитание времени\n", + "Напиши программу, которая:\n", + " получает текущую дату;\n", + " считает:\n", + " дату через 7 дней;\n", + " дату через 30 дней;\n", + " дату 14 дней назад;\n", + " выводит все результаты;" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "id": "060745f2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2026-10-09 14:11:42.487216\n", + "2026-10-16 14:11:42.487216\n", + "2026-11-08 14:11:42.487216\n", + "2026-09-25 14:11:42.487216\n" + ] + } + ], + "source": [ + "from datetime import datetime, timedelta\n", + "now = datetime.now()\n", + "in_7_days = now + timedelta(days=7)\n", + "in_30_days = now + timedelta(days=30)\n", + "before_14_days = now - timedelta(days=14)\n", + "print(now)\n", + "print(in_7_days)\n", + "print(in_30_days)\n", + "print(before_14_days)" + ] + }, + { + "cell_type": "markdown", + "id": "9c82c9de", + "metadata": {}, + "source": [ + "Задача 4. Преобразование строк в даты\n", + "Дан список строк с датами:\n", + "dates = [\"2026-03-30\",\"2026-03-25\",\"2026-02-15\",\"2026-01-01\"]\n", + "Нужно:\n", + " пройти по списку;\n", + " каждую строку превратить в дату;\n", + " для каждой даты вывести:\n", + " исходную строку;\n", + " полученную дату;\n", + " день;\n", + " месяц;\n", + " год;\n", + " посчитать, сколько дней прошло от этой даты до текущей даты." + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "id": "25874736", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Исходная строка - 2026-03-30\n", + "Преобразовання строка в дату - 2026-03-30 00:00:00\n", + "День - 30\n", + "Месяц - 3\n", + "Год - 2026\n", + "На сегодняшний день прошло - 193 дня\n", + "\n", + "Исходная строка - 2026-03-25\n", + "Преобразовання строка в дату - 2026-03-25 00:00:00\n", + "День - 25\n", + "Месяц - 3\n", + "Год - 2026\n", + "На сегодняшний день прошло - 198 дня\n", + "\n", + "Исходная строка - 2026-02-15\n", + "Преобразовання строка в дату - 2026-02-15 00:00:00\n", + "День - 15\n", + "Месяц - 2\n", + "Год - 2026\n", + "На сегодняшний день прошло - 236 дня\n", + "\n", + "Исходная строка - 2026-01-01\n", + "Преобразовання строка в дату - 2026-01-01 00:00:00\n", + "День - 1\n", + "Месяц - 1\n", + "Год - 2026\n", + "На сегодняшний день прошло - 281 дня\n", + "\n" + ] + } + ], + "source": [ + "from datetime import datetime, timedelta\n", + "dates_str = [\"2026-03-30\",\"2026-03-25\",\"2026-02-15\",\"2026-01-01\"]\n", + "now = datetime.now()\n", + "for date in dates_str:\n", + " dates = datetime.strptime(date, \"%Y-%m-%d\")\n", + " print(f\"Исходная строка - {date}\")\n", + " print(f\"Преобразовання строка в дату - {dates}\")\n", + " print(f\"День - {dates.day}\")\n", + " print(f\"Месяц - {dates.month}\")\n", + " print(f\"Год - {dates.year}\")\n", + " differences = now - dates\n", + " print(f\"На сегодняшний день прошло - {differences.days} дня\\n\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}