Search Header Logo
Проект

Проект

Assessment

Presentation

Information Technology (IT)

11th Grade

Practice Problem

Easy

Created by

алина родевич

Used 8+ times

FREE Resource

57 Slides • 0 Questions

1

​Работа с датой и временем.
Модуль datetime.

media

2

media

​Авторы:
Панкратов Никита

Родевич Алина

Маковец Николай

3

Теоретическая часть

media
media
media

4

Как использовать модуль datetime?

datetime — модуль, который позволяет управлять датами и временем, представляя их в таком виде, в котором пользователи смогут их понимать.

datetime включает различные компоненты. Так, он состоит из объектов следующих типов:

  • date — объекты даты.

  • datetime — объекты даты и времени.

  • time — объекты времени.

  • timedelta — этот атрибут покрывает интервалы и используется для определения прошлых или будущих событий.

media
media
media

5

Как получить текущие дату и время?

С помощью модуля Python это сделать очень просто. Сначала нужно импортировать класс datetime из модуля datetime, после чего создать объект datetime.
Модуль предоставляет метод now(), который возвращает текущие дату и время с учетом локальных настроек (формате год-месяц-день часы:минуты:секунды.миллисекунды соответственно).

media
media
media
media
media

6

Получение только текущей даты.

Класс date можно использовать для получения или изменения объектов даты (в формате год-месяц-день соответственно).
Например, для получения текущей с учетом настроек подойдет следующее:

media
media
media
media
media

7

Получение только текущего времени.

Для получения текущего локального времени сперва нужно получить текущие дату и время, а затем достать из этого объекта только время с помощью метода time():

media
media
media
media
media

8

Компоненты datetime в Python

Модуль datetime в Python может использоваться для получения разных версий времени. Для этого нужно ознакомиться с атрибутами модуля. Используем для этого функцию dir().

media
media
media
media
media

9

Как создавать объекты даты и времени

Для создания объекта времени используется класс time из модуля datetime в Python.
Синтаксис следующий:

media
media
media
media

10

Как создавать объекты даты и времени

  • В этом примере создается объект времени представленный следующим образом (8, 48, 45).

  • Сначала импортируется модуль datetime. После этого создается экземпляр класса (объект time). Затем ему присваивается значение datetime.time(8, 48, 45), где параметры 8, 48 и 45 представляют собой часы, минуты и секунды соответственно.

media
media
media
media
media

11

Для создания объекта даты нужно передать дату с использованием следующего синтаксиса:

  • datetime.datetime(year,month,day)

media
media
media
media
media

12

Timedelta

  • timedelta представляет длительность (даты или времени). Модуль datetime включает атрибут timedelta(), который используется для управления датой в Python. Объект timedelta выглядит следующим образом:




  • Все аргументы опциональные и их значения по умолчанию равно 0. Они могут быть целыми или числами с плавающей точкой, как положительными, так и отрицательными. Благодаря этому можно выполнять математические операции, такие как сложение, вычитание и умножение.

media
media
media
media

13

Как вычислить разницу для двух дат?

  • Посмотрим на несколько примеров вычисления разницы во времени. Предположим, есть два объекта datetime:

media
media
media
media

14

Для получения разницы нужно лишь вычесть значение одного объекта
из второго:

media
media
media
media
media

15

Как получать прошлые и будущие даты с помощью timedelta

  • Поскольку timedelta — это длительность, то для получения прошлой или будущей даты нужно добавить объект timedelta к существующему или вычесть из него же. Вот пример нескольких уравнений, где n — это целое число, представляющее количество дней:

media
media
media
media

16

Если нужно, например, получить дату за прошлые две недели, то достаточно вычесть 14 дней из текущей даты:

media
media
media
media
media

17

Другие арифметические операции с timedelta

Значения даты и времени могут сравниваться для определения того, какая из них была раньше или позже. Например:

media
media
media
media
media

18

Как конвертировать строки в datetime

strptime() в Python — это метод из модуля datetime.
Вот его синтаксис:

media
media
media
media

19

Аргументы формата необязательные и являются строками. Предположим, нужно извлечь текущие дату и время:

Результат будет в формате ISO 8601,
то есть YYYY-MM-DDTHH:MM:SS.mmmmmm — формат по умолчанию, что позволяет получать строки в едином формате.

media
media
media
media
media

20

Таблица форматов:

media
media
media
media

21

Пример:

media
media
media
media
media

22

Примеры конвертации строки в объект datetime с помощью strptime

Предположим, что есть следующая строка с датой: «11/17/20 15:02:34», и ее нужно конвертировать в объект datetime.

media
media
media
media
media

23

Даты могут быть записаны в разных форматах. Например, следующие даты отличаются лишь представлением:

Friday, November 17, 2020;

11/17/20;

11–17–2020.

media
media
media
media
media

24

Как конвертировать объект datetime в строку

Модуль datetime в Python содержит метод strftime(), который делает обратное (то есть, конвертирует объект datetime и time в строки). Вот его синтаксис:

media
media
media
media

25

Примеры конвертации datetime в строку с помощью strftime()

Предположим, нужно конвертировать текущий объект datetime в строку. Сначала нужно получить представление объекта datetime и вызвать на нем метод strftime().

media
media
media
media
media

26

Как получить строковое представление даты и времени с помощью функции format()

Пример №1. Конвертация текущей временной метки в объекте datetime в строку в формате «DD-MMM-YYYY (HH:MM:SS:MICROS)»:

media
media
media
media
media

27

Пример №2. Конвертация текущей временной метки объекта datetime в строку в формате «HH:MM:SS.MICROS – MMM DD YYYY».

media
media
media
media
media

28

Важный нюанс и вывод

media
media
media

​Дату и время стоит конвертировать в локальную только при выводе пользователю.

Есть масса сценариев работы с датой и временем в реальных приложениях. Например:
- Запланировать работу скрипта на определенное время.
- Отфильтровать даты.
- Приложения для отслеживания событий, записей, бронирования и так далее.

30

Практическая часть

31

Напишите программу, которая выводит на экран текущие дату и время в формате:
Сегодня: 2023-10-25, время: 14:30:45

Задача 1

32

Блок-схема к задаче 1:

media

33

Код реализации на Python к задаче 1:

media
media

34

Напишите программу, которая запрашивает у пользователя его год рождения и вычисляет его возраст (полных лет).

Задача 2

35

Блок-схема к задаче 2:

media

36

Код реализации на Python к задаче 2:

media
media

37

Напишите программу, которая запрашивает у пользователя дату в формате «дд.мм.гггг» и выводит, сколько дней осталось до этой даты. Если дата уже прошла, вывести сообщение об этом.

Задача 3

38

Блок-схема к задаче 3:

media

39

Код реализации на Python к задаче 3:

media
media

40

Напишите программу, которая принимает две даты в формате «дд.мм.гггг» и вычисляет разницу между ними в днях.

Задача 4

41

Блок-схема к задаче 4:

media

42

Код реализации на Python к задаче 4:

media
media

43

Напишите программу, которая принимает список строк с датами в формате «гггг-мм-дд», находит самую раннюю и самую позднюю даты, а также сортирует все даты в порядке возрастания.

Задача 5

44

Блок-схема к задаче 5:

media

45

Код реализации на Python к задаче 5:

media
media

46

media

Выполним интерактивные задания!

48

media
  1. Соотнеси атрибуты
    https://learningapps.org/watch?v=p1usfv7f325

media

49

media
  1. Соотнеси значения
    https://learningapps.org/watch?v=puqiitp9c25

media

53

media

Рефлексия

54

media

С какими трудностями мы столкнулись?

  • Понимание и правильное использование различных форматов даты и времени (strptime, strftime).

  • Логика корректного вычисления возраста и разницы в днях, особенно с учётом високосных лет и времени.

  • Работа с пользовательским вводом: валидация данных и обработка некорректных форматов.

  • Организация кода для обработки списка дат в задаче 5.

55

media

Что удалось хорошо?

  • Полностью разобрались с основными классами модуля datetime: date, datetime, timedelta.

  • Успешно реализовали все пять практических задач, включая сортировку дат и расчёт дельт.

  • Научились конвертировать даты между объектами Python и строковым представлением.

  • Создали наглядные блок-схемы, которые помогают понять логику программ.

56

media

Что можно улучшить?

  • Добавить более подробную обработку ошибок (например, при вводе несуществующей даты).

  • Расширить функционал некоторых задач (например, выводить возраст в годах, месяцах и днях).

  • Улучшить пользовательский интерфейс программ, сделав его более интерактивным.

  • Рассмотреть более сложные случаи работы со временем (часовые пояса).

57

media

Итоги презентации:

Мы считаем, что смогли доступно объяснить основы модуля datetime и показать его практическую пользу.

​Работа с датой и временем.
Модуль datetime.

media

Show answer

Auto Play

Slide 1 / 57

SLIDE