Eurotehnik.ru

Бытовая Техника "Евротехник"
6 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

BI — это просто

Как в Power BI и Power Pivot сдвинуть даты? DAX функции DATEADD, PARALLELPERIOD и SAMEPERIODLASTYEAR

Содержание статьи: (кликните, чтобы перейти к соответствующей части статьи):

Антон БудуевПриветствую Вас, дорогие друзья, с Вами Будуев Антон. В данной статье мы поговорим о том, как в Power BI и Power Pivot сдвинуть даты вперед или назад для сравнения текущих показателей с прошлыми или будущими. А конкретно, разберем функции, отвечающие в DAX за этот процесс — DATEADD, PARALLELPERIOD и SAMEPERIODLASTYEAR.

Разберем детально каждую из этих функций.

Для Вашего удобства, рекомендую скачать «Справочник DAX функций для Power BI и Power Pivot» в PDF формате.

Если же в Ваших формулах имеются какие-то ошибки, проблемы, а результаты работы формул постоянно не те, что Вы ожидаете и Вам необходима помощь, то записывайтесь в бесплатный экспресс-курс «Быстрый старт в языке функций и формул DAX для Power BI и Power Pivot».

А также, подписывайтесь на наши социальные сети. Потому что именно в них, Вам будут доступны оперативно и каждый день наши актуальные фишки, секреты, наработки, примеры, кейсы, полезные советы, видео и статьи по темам сквозной BI аналитики (Power BI, DAX, Power Pivot, Excel…): Вконтакте, Инстаграм, Фейсбук, YouTube.

DAX функция DATEADD в Power BI и Power Pivot

DATEADD () — создает таблицу со столбцом из дат, сдвинутых назад (в прошлое) или вперед (в будущее) на заданное количество интервалов от даты текущего контекста.

  • [Дата] — столбец из дат или выражений, возвращающих даты
  • Количество Интервалов — целое число, характеризующее количество интервалов, которое нужно добавить (вычесть) к дате в текущем контексте. Если указано положительное число — то интервалы добавляются, если указано отрицательное число — то интервалы вычитаются
  • Интервал — тип интервала: year (год), quarter (квартал), month (месяц), day (день)

! — Для правильной работы функции необходимо в качестве ее первого параметра [Дата] использовать столбец из таблицы непрерывных дат в Power BI, то есть, создавать отдельную связанную таблицу «Календарь» с непрерывным перечислением всех дат.

Разберем работу DAX функции DATEADD на примере нескольких формул.

В Power BI Desktop имеется таблица с датами «Календарь»:

Календарь дат

Для создания формул сравнения текущих показателей с прошлыми, необходимо внутри этих формул, относительно текущей даты, как-то получить соответствующую дату в прошлом. Для этого, воспользуемся рассматриваемой функцией DATEADD.

И для примера того, как она сдвигает даты, создадим в таблице «Календарь» вычисляемый столбец на основе следующей формулы:

В первом параметре этой формулы мы указали ссылку на столбец даты в календаре (календарь должен быть связан с той таблицей фактов, по которой Вы рассчитываете показатели).

Во втором параметре — количество интервалов, на которое нужно сдвинуть даты, причем значение отрицательное, то есть, сдвиг будет в прошлое.

В третьем — тип самого интервала (день).

Как результат выполнения этой формулы на основе DATEADD, получился столбец дат, сдвинутый в прошлое на два дня назад:

Результат работы формулы в Power BI на основе DAX функции DATEADD

То есть, каждой текущей дате из столбца [Дата] соответствует своя дата из прошлого на 2 дня назад (для текущей даты 5 января соответствует дата из прошлого 3 января).

Если мы в формуле укажем в качестве количества интервалов положительное число:

то сдвиг произойдет в будущее:

Функция DATEADD - сдвиг даты в будущее

То есть, каждой текущей дате из столбца [Дата] соответствует своя дата из будущего на 1 день вперед (для текущей даты 1 января соответствует дата из будущего 2 января).

DAX функция PARALLELPERIOD в Power BI и Power Pivot

PARALLELPERIOD () — возвращает таблицу из дат, смещенных во времени вперед или назад параллельно текущей дате в текущем контексте на заданное количество интервалов.

  • [Дата] — столбец из дат или выражений, возвращающих даты
  • Количество Интервалов — целое число, характеризующее количество интервалов, которое нужно добавить (вычесть) к дате в текущем контексте. Если указано положительное число — то интервалы добавляются, если указано отрицательное число — то интервалы вычитаются
  • Интервал — тип интервала: year (год), quarter (квартал), month (месяц)

! — Для правильной работы функции необходимо в качестве ее первого параметра [Дата] использовать столбец из таблицы непрерывных дат в Power BI, то есть, создавать отдельную связанную таблицу «Календарь» с непрерывным перечислением всех дат.

В общем и целом, функции DATEADD и PARALLELPERIOD практически одинаковы, за исключением того, что:

  1. в PARALLELPERIOD нет интервала day (день)
  2. PARALLELPERIOD возвращает параллельный период полностью (например, от начала до конца месяца), тогда как DATEADD возвращает конкретно только тот интервал, который задан в изначальном столбце дат.

Например, изначальный набор дат будет отфильтрован датами от 16 до 25 октября. И если мы обеими функциями попытаемся возвратить набор дат на 1 месяц назад, то DATEADD возвратит даты только с 16 до 25 сентября, а PARALLELPERIOD — уже возвратит даты всего предыдущего месяца от начала и до конца, то есть, с 1 по 30 сентября.

Читайте так же:
Можно ли использовать защитное стекло повторно

Давайте разберем разницу работы DATEADD и PARALLELPERIOD на конкретном практическом примере.

В Power BI Desktop имеется исходная таблица по продажам за 2018 год (с 16.01.2018 по 31.12.2018):

Исходная таблица продаж

Задача состоит в следующем — в рамках сводной таблицы, напротив текущего месяца, получить сумму продаж за предыдущий месяц. Для этого подойдут обе рассматриваемые выше функции.

Для корректной работы DATEADD и PARALLELPERIOD мы не можем ссылаться на столбец дат, который находится в таблице продаж. Для них нужна совершенно отдельная таблица неразрывных дат «Календарь». В разборе синтаксисов функций я об этом писал (напоминаю, как создавать таблицы неразрывных дат (календари) разбирается в этой статье).

Итак, в модели данных я создал отдельный «Календарь» и связал его со столбцом [Дата Продаж] в таблице «Продажи»:

Как в Power BI и Power Pivot сдвинуть даты? DAX функции DATEADD, PARALLELPERIOD и SAMEPERIODLASTYEAR

Теперь можно приступать к созданию формул:

Обе формулы, которые мы записали выше, рассчитывают сумму прибыли за предыдущий месяц:

  • за суммирование отвечает функция SUM, которая суммирует все значения в столбце [СуммаПродаж]
  • за перемещение периода отвечают функции DATEADD и PARALLELPERIOD, которые перемещают даты из календаря на 1 месяц назад, причем, напомню, «Календарь» связан с таблицей «Продажи» по столбцам дат
  • и, за само вычисление суммы, под условием перемещения дат на месяц назад, отвечает DAX функция CALCULATE, внутрь которой помещены все функции, участвующие в работе

Посмотрим как поведут себя эти формулы в Power BI Desktop:

Результат работы формул в Power BI Desktop на основе DAX функций DATEADD и PARALLELPERIOD

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

Обе функции DATEADD и PARALLELPERIOD пока работают абсолютно одинаково, так в чем же их различие?

А различие в том, что DATEADD — возвращает дату, которая была месяц назад. А PARALLELPERIOD весь период, который был месяц назад (в данном случае, период равен месяцу, так как в параметрах указан MONTH).

Давайте это подтвердим на нашем примере и в созданной матрице спустимся в иерархии дат до дней, тогда мы тут же заметим разницу в работе этих двух функций (для удобства демонстрации я создал две копии визуализаций: на первой показан январь по дням, на второй — февраль по дням):

Различие функций DATEADD и PARALLELPERIOD

То есть, теперь, когда мы спустились в матрице к отображению дней, то DATEADD возвращает для каждого текущего дня сумму продаж именно по этому же дню, но из прошлого месяца. А PARALLELPERIOD возвращает для каждого текущего дня сумму продаж уже не по этому же дню из прошлого месяца, а именно сумму продаж за весь прошлый период (в данном случае, за месяц).

DAX функция SAMEPERIODLASTYEAR в Power BI и Power Pivot

SAMEPERIODLASTYEAR () — возвращает таблицу из дат, смещенных на 1 год назад относительно дат текущего контекста.

На самом деле, SAMEPERIODLASTYEAR это упрощенный вариант DAX функции DATEADD, а именно, упрощенный ее вариант с конкретными настройками параметров:

И нужна эта функция только для того, чтобы упростить написание кода на языке DAX в Power BI.

Посмотрим на практике как работают формулы на основе этих двух функций:

Работа формул в Power BI на основе DAX функций DATEADD и SAMEPERIODLASTYEAR

Как мы видим, формула на основе SAMEPERIODLASTYEAR, как и на основе DATEADD, вывела значение суммы продаж за январь предыдущего года. Соответственно, в тех случаях, когда нам нужно вычислить какие-то значения за прошлый год, то лучше просто воспользоваться SAMEPERIODLASTYEAR, так как она позволяет быстрее и легче написать DAX код в Power BI.

На этом, с разбором DAX функций DATEADD, PARALLELPERIOD и SAMEPERIODLASTYEAR, сдвигающих период дат в прошлое или будущее в Power BI или Power Pivot, в этой статье все.

Единственное, напоминаю, что для корректной работы этих функций, в качестве столбца дат требуется указывать совершенно отдельную в модели данных таблицу «Календарь» с неразрывными датами.

Пожалуйста, оцените статью:

  1. 5
  2. 4
  3. 3
  4. 2
  5. 1

[Экспресс-видеокурс] Быстрый старт в языке DAX

Антон БудуевУспехов Вам, друзья!
С уважением, Будуев Антон.
Проект «BI — это просто»

Если у Вас появились какие-то вопросы по материалу данной статьи, задавайте их в комментариях ниже. Я Вам обязательно отвечу. Да и вообще, просто оставляйте там Вашу обратную связь, я буду очень рад.

Также, делитесь данной статьей со своими знакомыми в социальных сетях, возможно, этот материал кому-то будет очень полезен.

Понравился материал статьи?
Избранные закладкиДобавьте эту статью в закладки Вашего браузера, чтобы вернуться к ней еще раз. Для этого, прямо сейчас нажмите на клавиатуре комбинацию клавиш Ctrl+D

Что еще посмотреть / почитать?

DAX функции ROW и TOPN

Таблицы итогов и топ значений в DAX: функции ROW и TOPN (для Power BI и Power Pivot)

DAX функции BLANK, FIXED, LEN, REPT и TRIM в Power BI

Текстовые функции в DAX: BLANK, FIXED, LEN, REPT и TRIM в Power BI (Power Pivot)

Читайте так же:
Где в ворде проставить страницы

DAX функции VALUE, EXACT, LOWER и UPPER в Power BI

Текстовые функции в DAX: VALUE, EXACT, LOWER и UPPER в Power BI (Power Pivot)

Как рассчитать дни между датами в Google Sheets

Пользователи электронных таблиц повсюду радовались тому, что в 2006 году Google Sheets был выпущен для всего мира. Мощный облачный пакет программного обеспечения для электронных таблиц, который можно совершенно бесплатно использовать, Sheets имеет простую кривую обучения и является отличным инструментом для создания электронных таблиц для работы, учебы, или личное использование. Конечно, бесплатное программное обеспечение, которое легко использовать, не будет обладать набором функций таких лидирующих на рынке пакетов, как Microsoft Excel. Листам не хватает некоторых функций и возможностей, но это все еще мощный программный пакет.

Также смотрите нашу статью Как конвертировать электронные таблицы Google Sheets в XML

Одним из наиболее распространенных применений для программ работы с электронными таблицами является создание календарей и обработка информации о датах, например, расписаний или графиков отпусков. Многим пользователям, которые создают электронную таблицу, имеющую дело с датами, необходимо рассчитать, сколько дней проходит между двумя датами; то есть им нужно выяснить, сколько дней проходит (например, с 1 июля 2018 года по 31 января 2019 года). Вы можете просто посмотреть в календаре и подсчитать количество дней вручную, и это будет нормально работать, если даты были очень близки друг к другу, но для большого числа дат или дат, которые находятся далеко друг от друга, небольшая помощь со стороны компьютера была бы хорошей. К счастью, в Google Sheets есть несколько способов узнать количество дней между двумя датами.

Функция МИНУС

В отличие от Excel, в Google Sheets есть функция вычитания, которая очень удобна для расчета простых разностей дат. МИНУС – это функция вычитания листов, и из-за того, что даты хранятся внутри (как целые числа, описывающие количество дней, прошедших с определенной даты в прошлом), она отлично работает для вычитания одной даты из другой, если даты оба в том же формате. Синтаксис для МИНУС: = МИНУС (значение 1, значение 2),

Чтобы использовать MINUS, откройте пустую электронную таблицу Google Sheets в своем браузере. Введите (в качестве примера) «4/4/2017» и «5/15/2017» в ячейки B3 и C3. Теперь выберите ячейку D3, куда мы поместим функцию МИНУС. Нажмите внутри панели эффектов, затем введите «= MINUS (C3, B3)» и нажмите Enter. Ячейка D3 теперь вернет значение 40, как показано ниже.

гугл даты

Таким образом, между 5/5/2017 и 15.05.2017 есть 40 дней. Вы также можете найти разницу между датами, просто введя ссылки на ячейки и не заботясь о функции МИНУС. Например, щелкните ячейку E3 и введите «= C3-B3» на функциональной панели, как показано на снимке экрана ниже. Это также вернет 40, хотя, поскольку вы напрямую вычитаете даты без МИНУС, значение в ячейке E, вероятно, будет отображаться в формате даты и будет выглядеть очень странно. Вы можете преобразовать формат ячейки в целочисленное значение, выбрав Формат > Число а также Число,

гугл даты2

Вы также можете сначала ввести ссылки на ячейки с более ранней датой. Если вы ввели «= B3-C3» в функциональной панели, ячейка будет содержать значение -40. Это подчеркивает, что 4/4/2017 на 40 дней отстает от 15.05.2017.

Функция DATEDIF

DATEDIF – это функция, с помощью которой вы можете найти общее количество дней, месяцев или лет между двумя датами. Вы можете найти общее количество дней между двумя датами, введенными в электронную таблицу, или вместо этого включить даты в DATEDIF. Синтаксис для DATEDIF: DATEDIF (дата начала, дата окончания, единица измерения), Единицей функции может быть D (дни), M (месяцы) или Y (годы).

Чтобы найти разницу между 04.04.2017 и 15.05.2017 с DATEDIF, вы должны выбрать ячейку для добавления функции (в нашем случае F3) и ввести «= DATEDIF» на панели эффектов. Затем разверните функцию с помощью скобок, которые включают ссылки на ячейки даты начала и окончания даты B3 и C3. Единичные дни, иначе «D», также должны быть в конце функции. Таким образом, полная функция = DATEDIF (B3, C3, «D»), которая возвращает значение 40, как показано ниже.

гугл даты3

DATEDIF также будет работать, если вы введете информацию о дате непосредственно в формулу. Щелкните ячейку электронной таблицы, чтобы добавить DATEDIF, и затем введите ‘= DATEDIF (« 4/5/2017 »,« 15/15/2017 ″, «D») ’на панели« fx ». Это вернет 40 в выбранной ячейке, как показано ниже.

гугл даты4

Функция DAY360

Google Sheets включает DAY360, который вычисляет разницу между датами для 360-дневного года. Календарь на 360 дней используется главным образом для финансовых таблиц, в которых могут потребоваться расчеты процентных ставок. Синтаксис для DAYS360: = DAYS360 (дата начала, дата окончания, (метод)), (Метод) – это необязательный индикатор, который можно включить в метод подсчета дней.

Читайте так же:
Как восстановить ссылки в яндекс браузере

Чтобы использовать эту функцию в электронной таблице Google Sheets на даты 01.01.2016 и 01.01.2017, введите «01.01.2016» в ячейку B4 в качестве даты начала, а затем введите «01.01.2017» в C4 в качестве даты окончания функции. Теперь выберите ячейку D4, введите функцию ‘= DAYS360 (B4, C4)’ на панели эффектов и нажмите Enter. Тогда ячейка D4 будет включать в себя 360 дней между выбранными датами. Note что единственное реальное использование этой конкретной функции – это если вы работаете с процентными ставками.

гугл даты5

Функция NETWORKDAYS

NETWORKDAYS также вычисляет количество дней между датами, но оно не совсем то же, что и остальные. Эта функция считает только дни недели, поэтому она не учитывает выходные. (Прочитайте его как «Чистые рабочие дни», а не «Сетевые дни».) Таким образом, вы можете найти общее количество дней недели между двумя датами с помощью NETWORKDAYS, а также можете указать дополнительные выходные, чтобы исключить другие даты. Синтаксис для NETWORKDAYS: NETWORKDAYS (дата начала, дата окончания, (праздничные дни)),

Вы можете добавить эту функцию в свою электронную таблицу с примерами дат 4/4/2017 и 15/15/2017, введенными в ячейки B3 и C3. Выберите ячейку, в которую нужно включить общее количество дней, и нажмите на панели эффектов, чтобы вставить функцию. Введите «= NETWORKDAYS (B3, C3)» и нажмите клавишу «Ввод», чтобы добавить функцию в любую ячейку электронной таблицы, которую вы выбрали для нее. Ячейка NETWORKDAYS будет включать в себя общее количество 29 для количества дней между датами.

Чтобы добавить праздничную дату в функцию, сначала введите «17.04.2017» в ячейку A3. Выберите ячейку NETWORKDAYS, щелкните панель валют и измените функцию, добавив в нее ссылку на ячейку A3. Таким образом, функция будет = NETWORKDAYS (B3, C3, A3), которая вернет 28 с дополнительным выходным днем, также вычтенным из общего количества дней.

гугл даты6

Другие важные функции, связанные с датой

В таблицах есть ряд функций, связанных с датами, с которыми вам следует ознакомиться, если вы собираетесь много работать с датами.

    • Функция DATE преобразует указанный год, месяц и день в дату. Формат – ДАТА (год, месяц, день). Например, DATE (2019,12,25) возвращает «25.12.2009».
    • Функция DATEVALUE преобразует правильно отформатированную строку даты в целое число даты. Формат DATEVALUE (строка даты); строка даты может быть любой подходящей строкой, такой как «25/12/2019» или «23.01.2012 8: 5: 30».
    • Функция DAY возвращает день месяца, на который приходится конкретная дата, в числовом формате. Формат – ДЕНЬ (дата). Например, DAY («25.12.2009») возвращает 25.
    • Функция DAYS возвращает количество дней между двумя датами. Формат – ДНИ (дата окончания, дата начала). Например, DAYS («25/12/20189», «31.08.2009») возвращает 116.
    • Функция EDATE возвращает дату через определенное количество месяцев до или после указанной даты. Формат EDATE (дата начала, количество месяцев). Например, EDATE («31.08.2009», -1) возвращает «31.07.2009».
    • Функция MONTH возвращает месяц года, на который приходится конкретная дата, в числовом формате. Формат – МЕСЯЦ (дата). Например, MONTH («30.08.2009») возвращает 8.
    • Функция TODAY возвращает текущую дату в качестве значения даты. Формат – СЕГОДНЯ (). Например, на момент написания этой статьи TODAY () вернул бы «31.08.2009».
    • Функция WEEKDAY возвращает числовое значение, показывающее день недели предоставленной даты. Формат: WEEKDAY (дата, тип) и тип может быть 1, 2 или 3. Если тип равен 1, дни считаются с воскресенья, а воскресенье имеет значение 1. Если тип равен 2, дни считаются с понедельника и значение понедельника равно 1. Если тип равен 3, дни считаются с понедельника, а значение понедельника равно 0. Например, 30.04.2009 является вторником, а WEEKDAY («30.04.2009», 1) будет верните 3, в то время как WEEKDAY («30/04/2019», 2) вернет 2, а WEEKDAY («30/04/2019», 3) вернет 1.
    • Функция YEAR возвращает числовое значение, показывающее год предоставленной даты. Формат ГОД (дата). Например, YEAR («25.12.2009») вернет 2019.

    Вот так вы можете найти количество дней между датами в Google Sheets. Функции MINUS, DATEDIF, NETWORKDAYS и DAYS360 наверняка пригодятся, если в ваших электронных таблицах много дат.

    Есть еще какие-нибудь уникальные или интересные способы работы с датами в Google Sheets? Поделитесь ими с нами ниже!

    Подсчет количества дней с помощью простой формулы

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

    формат Дата

    После этого нужно выбрать ячейку, в которой будет находиться результат вычислений, и присвоить ей формат «Общий». Формат «Дата» для ячейки с результатом не подходит, поскольку в этой ячейке будет находиться количество дней (число), а не конкретная дата.

    формат Общий

    После присвоения формата «Общий», в эту ячейку нужно ввести формулу, которая будет отнимать более раннюю дату от более поздней. Подобная формула вводится очень просто. Выделяем ячейку, в которой должен находится результат, вводим символ «=», потом адрес ячейки с более поздней датой, потом символ «-» и адрес ячейки с более ранней датой.

    ввод простой формулы

    После ввода формулы нужно нажать на клавишу Enter, и вы получите результат.

    количество дней

    Как видим, в данном случае количество дней между двумя датами составляет 41.

    Вам также могут быть интересны следующие статьи

    К примеру 5:
    Функция КОДСИМВ() возвращает значения от букв A, B, C, D (англ.) — 65, 66, 67, 68 соответственно вычитая из этих значений 64, получаем 1, 2, 3, 4 для первого аргумента функции ВЫБОР().

    Отлично, Rustem, все правильно!

    В 4-м пункте (дабы было удобнее пользоваться этим приемом) лучше в ячейках B6:B9 сделать пользовательский формат 0″-й», а в формуле ссылаться на соседнюю ячейку, то есть так (формула для ячейки C6):
    =ВПР($C$5&B6;$F$6:$G$24;2;ЛОЖЬ)

    в этом случае не придется вручную прописывать номер в формуле (в той формуле, которая сейчас показана на скриншоте)

    а каким образом найти клиента в огромной базе по номеру телефона? Т.е. в таблице много параметров о клиентах и контактные данные в том числе (это как бы уникальный номер, только по нему можно найти нужного клиента). Мне это нужно, чтобы повторно не вносить одного и того же клиента, а такой риск у меня 95 к 100.

    Способ 1: вычитание

    Начнем с самого простого – это отнимем от одной даты вторую, и получим нужное нам значение. Перед этим убедитесь, что формат ячеек, в которые вписаны числа, выбран «Дата» .

    Если еще не заполняли их, тогда выделите диапазон, с которым хотите работать и нажмите напротив названия группы «Число» на маленькую стрелочку.

    Стрелочка

    В открывшемся окне слева выберите подходящий нам формат, а потом в основной области определитесь с типом: 14.03.12, 14 мар 12 или другой. Нажимайте «ОК» .

    Выбор формата

    В те ячейки, для которых только что поменяли формат, вводите данные. Я заполнила А1 и В1 . Теперь нужно выбрать любую ячейку ( D1 ), в которой установлен общий формат данных, иначе расчеты будут некорректные. Поставьте в нее «=» и нажмите сначала позднюю ( В1 ) дату, потом раннюю ( А1 ). Чтобы вычислить между ними количество дней, жмите «Enter» .

    В1-А1

    Как видите, между 5 июня и 24 сентября 111 дней.

    Число 111

    DateTime, TimeDelta, Strftime(Format): дата и время в Python с примерами

    DateTime, TimeDelta, Strftime(Format): дата и время в Python с примерами

    От автора: классы date, time и datetime предоставляют ряд функций для работы в Python с датами, временем и временными интервалами. Date и datetime являются объектами Python, поэтому, когда вы манипулируете ими, вы фактически манипулируете объектами, а не строками или временными метками. Всякий раз, когда вы манипулируете датами или временем, вам нужно импортировать функцию datetime.

    Классы datetime в Python подразделяются на 5 основных классов.

    date — работа с простой датой (месяц, день, год)

    time — время, независимое от дня (час, минута, секунда, микросекунда)

    datetime — комбинация времени и даты (месяц, день, год, час, секунда, микросекунда)

    Бесплатный курс «Python. Быстрый старт»

    Получите курс и узнайте, как создать программу для перевода текстов на Python

    timedelta — продолжительность времени, используемого для манипулирования датами

    tzinfo— абстрактный класс для работы с часовыми поясами

    В этом руководстве мы рассмотрим:

    Как использовать классы Date и DateTime

    Вывод даты с использованием date.today()

    Текущая дата и время в Python: now() today()

    Как отформатировать дату и время с помощью Strftime()

    Как использовать Объекты Timedelta

    Как использовать классы Date и DateTime

    Шаг 1) Прежде чем запускать код для datetime, важно импортировать модули date time, как показано на скриншоте ниже.

    Эти операторы импорта являются предопределенными частями функционала в библиотеке Python, которые позволяют вам манипулировать датами и временем без написания какого-либо кода. Рассмотрим следующее перед выполнением кода даты и времени:

    Эта строка сообщает интерпретатору Python, что из модуля datetime импортируется класс date. Мы не пишем код для этого функционала, а просто импортируем его для использования.

    Шаг 2) Далее мы создаем экземпляр объекта даты.

    Шаг 3) Далее мы выводим дату и запускаем код.

    Вывод соответствует ожидаемому.

    Вывод даты с использованием date.today()

    Функция date.today имеет несколько свойств, связанных с ней. Мы можем вывести отдельно день / месяц / год и многое другое. Давайте рассмотрим пример:

    Сегодняшний номер дня недели

    Функция date.today() также дает номер дня недели. Вот таблица рабочих дней, которая начинается с понедельника 0 и заканчивается воскресеньем 6.

    Номер дня недели полезен для массивов, индекс которых зависит от дня недели.

    Текущая дата и время в Python: now() today()

    Шаг 1) Как и объекты Date, мы также можем использовать в Python объекты «DATETIME» . Он выдает дату вместе со временем в часах, минутах, секундах и миллисекундах.

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

    Шаг 2) С помощью «объекта DATETIME» вы также можете вызвать класс time.

    Предположим, мы хотим вывести только текущее время без даты.

    Мы импортировали класс time. Мы присваиваем ему текущее значение времени, используя datetime.now(). Мы присваиваем значение текущего времени переменной t. И это даст нам только время. Итак, давайте запустим эту программу.

    Вы можете видеть, что здесь у меня есть дата и время. А в следующей строке есть только время.

    Шаг 3) Мы применим индексатор дня недели к массиву дней недели, чтобы узнать, какой сегодня день.

    Оператору дней (wd) присваивается номер (0-6) в зависимости от текущего дня недели. Здесь мы объявили массив списка для дней (Mon, Tue, Wed…Sun). Используйте это значение индекса, чтобы узнать, какой сегодня день. В нашем случае это номер 2, и он представляет среду, поэтому на выходе мы получим «Which is a Wednesday».

    Вот полный код для получения текущей даты и времени, используя datetime.

    Как отформатировать дату и время с помощью Strftime()

    На данный момент мы узнали, как использовать в Python объекты datetime и date. Теперь мы узнаем, как использовать функцию форматирования времени и даты.

    Шаг 1) Сначала мы рассмотрим, как отформатировать год. Вот пример:

    Мы использовали для форматирования «функцию strftime».

    Эта функция использует другой управляющий код для вывода.

    Каждый управляющий код указывает различные параметры, такие как год, месяц, день недели и дата [(%y/%Y – Year), (%a/%A- weekday), (%b/%B- month), (%d — day of month)].

    В нашем случае это («%Y»), который указывает год, он выводим полный год с веком (например, 2018).

    Шаг 2) Теперь, если вы замените («%Y») на строчные буквы, т. е. («%y») и выполните код, выходные данные будут отображать только (18), а не (2018). Век года не будет отображаться как показано на скриншоте ниже.

    Бесплатный курс «Python. Быстрый старт»

    Получите курс и узнайте, как создать программу для перевода текстов на Python

    Шаг 3) Функция Strf может объявлять отдельно дату, день, месяц и год. Также с небольшими изменениями в управляющем коде функции strftime вы можете отформатировать стиль текста.

    Внутри функции strftime, если вы замените (%a) на заглавную A, т. е. (%A), вывод будет «Friday», а не просто «Fri».

    Шаг 4) С помощью функции «Strftime» мы также можем получить локальное системное время, дату или и то, и другое.

    %C — указывает местную дату и время

    %x — указывает местную дату

    %X — указывает местное время

    В результате вы можете увидеть вывод, как и ожидалось.

    Шаг 5) Функция strftime позволяет вам вызывать время в формате 24 часа или 12 часов.

    Просто определив управляющий код, %I/H для часов, %M для минут, %S для секунд, можно вызвать время в разных форматах.

    Время 12 часов объявляется, как [print now.strftime(«%I:%M:%S %P)].

    24 часа объявляется, как [print now.strftime(«%H:%M»)].

    Вот полный код для преобразования datetime в объект String.

    Как использовать Объекты Timedelta

    С объектами timedelta вы можете оценить время как для будущего, так и для прошлого. Другими словами, это временной интервал для прогнозирования любого конкретного дня, даты или времени.

    Помните, что эта функция предназначена не для вывода времени или даты, а для того, чтобы ВЫПОЛНЯТЬ РАСЧЕТЫ в будущем или прошлом. Давайте рассмотрим пример.

    Шаг 1) Чтобы запустить Объект Timedelta, вам нужно сначала объявить оператор импорта, а затем выполнить код:

    Указываем оператор импорта для timedelta

    Теперь указываем код для вывода объекта из timedelta, как показано на снимке экрана

    Запустите код. Timedelta представляет промежуток 365 дней, 8 часов и 15 минут и выводит то же самое

    Смешение? Об этом в следующем шаге.

    Шаг 2) Давайте получим текущие дату и время, чтобы проверить, как работает наш оператор импорта. Когда код выполняется, он выводим сегодняшнюю дату, что означает, что наш оператор импорта работает хорошо.

    Шаг 3) Посмотрим, как мы можем получить дату через год с помощью Объекта Timedelta. Когда мы запускаем код, он выдает результат, как и ожидалось.

    Шаг 4) Еще один пример того, как Timedelta может использоваться для расчета будущей даты из текущей даты и времени.

    Шаг 5) Давайте рассмотрим более сложный пример. Я хотел бы определить, сколько дней прошло в новом году. Вот как мы будем действовать.

    голоса
    Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector