# daynumberofquarter — функция скриптa и диаграммы

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

Синтаксис:

DayNumberOfQuarter(timestamp[,start\_month])

Возвращаемые типы данных: целое

Аргументы

| Аргумент | Описание |
| --- | --- |
| timestamp | Дата или метка времени для вычисления. |
| start\_month | Если в поле start\_month задать значение от 2 до 12 (1, если значение не указано), то начало года может быть передвинуто вперед на первый день любого месяца. Если, например, необходимо работать в рамках финансового года, начинающегося 1 марта, задайте start\_month = 3. |

В этих примерах используется формат даты DD/MM/YYYY. Формат даты указан в операторе SET DateFormat в верхней части скрипта загрузки данных. Измените формат в примерах согласно своим пожеланиям.

Примеры функции

| Пример | Результат |
| --- | --- |
| `DayNumberOfQuarter('12/09/2014')` | Возвращает 74, номер дня текущего квартала. |
| `DayNumberOfQuarter('12/09/2014',3)` | Возвращает 12, номер дня текущего квартала.<br>В этом случае первый квартал начинается с марта (поскольку элемент start\_month указан как 3). Это означает, что текущий квартал является третьим кварталом, который начался первого сентября. |

## Пример 1. Начало года в январе (скрипт)

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/daynumberofquarter.htm)

#### Скрипт загрузки и результаты

Обзор

Откройте Редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.

Скрипт загрузки содержит следующее:

* Простой набор данных, содержащий список дат, который загружается в таблицу под именем `Calendar`. Используется системная переменная `DateFormat` со значением по умолчанию MM/DD/YYYY.

* Предшествующая загрузка, создающая дополнительное поле под именем `DayNrQtr` с использованием функции `DayNumberOfQuarter()`.

Помимо даты, в функцию не передаются дополнительные параметры.

Скрипт загрузки

```
SET DateFormat='MM/DD/YYYY'; 
 
Calendar: 
Load 
        date, 
        DayNumberOfQuarter(date) as DayNrQtr 
        ; 
Load 
date 
Inline  
[	 
date 
01/01/2022 
01/10/2022 
01/31/2022 
02/01/2022 
02/10/2022 
02/28/2022 
03/01/2022 
03/31/2022 
04/01/2022 
]; 
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:

* `date`

* `daynrqtr`

Результирующая таблица

| date | daynrqtr |
| --- | --- |
| 01/01/2022 | 1 |
| 01/10/2022 | 10 |
| 01/31/2022 | 31 |
| 02/01/2022 | 32 |
| 02/10/2022 | 41 |
| 02/28/2022 | 59 |
| 03/01/2022 | 61 |
| 03/31/2022 | 91 |
| 04/01/2022 | 1 |

Первый день года — 1 января, так как в функцию `DayNumberOfQuarter()` не передан второй аргумент.

1 января — это первый день квартала, а 1 февраля — тридцать второй день квартала. 31 марта — это девяносто первый и последний день квартала, а 1 апреля — это первый день второго квартала.

## Пример 2. Начало года в феврале (скрипт)

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/daynumberofquarter.htm)

#### Скрипт загрузки и результаты

Обзор

Откройте Редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.

Скрипт загрузки содержит следующее:

* Используется тот же набор данных, что и в первом примере.

* Используется системная переменная `DateFormat` со значением по умолчанию MM/DD/YYYY.

* Аргумент `start_month`, указывающий на 1 февраля. Это задает в качестве начала финансового года 1 февраля.

Скрипт загрузки

```
SET DateFormat='MM/DD/YYYY'; 
					
Calendar:
Load
	date,
	DayNumberOfQuarter(date,2) as DayNrQtr
	;
Load
date
Inline
[
date
01/01/2022
01/10/2022
01/31/2022
02/01/2022
02/10/2022
02/28/2022
03/01/2022
03/31/2022
04/01/2022
]; 
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:

* `date`

* `daynrqtr`

Результирующая таблица

| date | daynrqtr |
| --- | --- |
| 01/01/2022 | 62 |
| 01/10/2022 | 71 |
| 01/31/2022 | 92 |
| 02/01/2022 | 1 |
| 02/10/2022 | 10 |
| 02/28/2022 | 28 |
| 03/01/2022 | 30 |
| 03/31/2022 | 60 |
| 04/01/2022 | 61 |

Первый день года — 1 февраля, так как в функцию `DayNumberOfQuarter()` был передан второй аргумент со значением 2.

Первый квартал года длится с февраля по апрель, а четвертый квартал — с ноября по январь. Это показано в результирующей таблице, где 1 февраля — это первый день квартала, а 31 января — девяносто второй и последний день квартала.

## Пример 3. Начало года в январе (диаграмма)

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/daynumberofquarter.htm)

#### Скрипт загрузки и выражение диаграммы

Обзор

Откройте Редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.

Скрипт загрузки содержит следующее:

* Используется тот же набор данных, что и в первом примере.

* Используется системная переменная `DateFormat` со значением по умолчанию MM/DD/YYYY.

Однако в этом примере в приложение загружается неизмененный набор данных. Значение дня квартала рассчитывается с использованием меры в объекте диаграммы.

Скрипт загрузки

```
SET DateFormat='MM/DD/YYYY';
						
Calendar:
Load
date
Inline
[
date
01/01/2022
01/10/2022
01/31/2022
02/01/2022
02/10/2022
02/28/2022
03/01/2022
03/31/2022
04/01/2022
]; 
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте это поле как измерение: `date`.

Создайте следующую меру:

`=daynumberofquarter(date)`

Результирующая таблица

| date | =daynumberofquarter(date) |
| --- | --- |
| 01/01/2022 | 1 |
| 01/10/2022 | 10 |
| 01/31/2022 | 31 |
| 02/01/2022 | 32 |
| 02/10/2022 | 41 |
| 02/28/2022 | 59 |
| 03/01/2022 | 61 |
| 03/31/2022 | 91 |
| 04/01/2022 | 1 |

Первый день года — 1 января, так как в функцию `DayNumberOfQuarter()` не передан второй аргумент.

1 января — это первый день квартала, а 1 февраля — тридцать второй день квартала. 31 марта — это девяносто первый и последний день квартала, а 1 апреля — это первый день второго квартала.

## Пример 4. Начало года в феврале (диаграмма)

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/daynumberofquarter.htm)

#### Скрипт загрузки и выражение диаграммы

Обзор

Откройте Редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.

Скрипт загрузки содержит следующее:

* Используется тот же набор данных, что и в первом примере.

* Используется системная переменная DateFormat со значением по умолчанию MM/DD/YYYY.

* Финансовый год длится с 1 февраля по 31 января.

Однако в этом примере в приложение загружается неизмененный набор данных. Значение дня квартала рассчитывается с использованием меры в объекте диаграммы.

Скрипт загрузки

```
SET DateFormat='MM/DD/YYYY';
						
Calendar:
Load
date
Inline
[
date
01/01/2022
01/10/2022
01/31/2022
02/01/2022
02/10/2022
02/28/2022
03/01/2022
03/31/2022
04/01/2022
]; 
```

Объект диаграммы

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте это поле как измерение: date.

Создайте следующую меру:

=daynumberofquarter(date,2)

Результаты

Результирующая таблица

| date | =daynumberofquarter(date,2) |
| --- | --- |
| 01/01/2022 | 62 |
| 01/10/2022 | 71 |
| 01/31/2022 | 92 |
| 02/01/2022 | 1 |
| 02/10/2022 | 10 |
| 02/28/2022 | 28 |
| 03/01/2022 | 30 |
| 03/31/2022 | 60 |
| 04/01/2022 | 61 |

Первый день года — 1 февраля, так как в функцию DayNumberOfQuarter() был передан второй аргумент со значением 2.

Первый квартал года длится с февраля по апрель, а четвертый квартал — с ноября по январь. Это показано в результирующей таблице, где 1 февраля — это первый день квартала, а 31 января — девяносто второй и последний день квартала.