# daynumberofyear — funkcja skryptu i funkcja wykresu

Ta funkcja oblicza numer dnia roku, w którym przypada znacznik czasu. Obliczenie jest wykonywane od pierwszej milisekundy pierwszego dnia roku, ale pierwszy miesiąc może być przesunięty.

Składnia:

DayNumberOfYear(timestamp[,start\_month])

Typ zwracanych danych: integer

Argumenty

| Argument | Opis |
| --- | --- |
| timestamp | Data lub znacznik czasu do oszacowania. |
| start\_month | Przez określenie wartości start\_month z zakresu od 2 do 12 (1 w przypadku pominięcia) można przesunąć początek roku do pierwszego dnia dowolnego miesiąca. Na przykład w celu określenia początku roku obrotowego na 1 marca należy podać wartość start\_month = 3. |

W tych przykładach używany jest format daty DD/MM/YYYY. Format daty jest określony w instrukcji SET DateFormat u góry skryptu ładowania danych. Format zastosowany w przykładach można zmienić, aby dostosować go do konkretnych potrzeb.

Przykłady funkcji

| Przykład | Wynik |
| --- | --- |
| `DayNumberOfYear( '12/09/2014' )` | Zwraca 256, numer dnia liczony od pierwszego dnia roku. |
| `DayNumberOfYear( '12/09/2014',3 )` | Zwraca 196, numer dnia liczony od 1 marca. |

## Przykład 1 – styczeń, początek roku (skrypt)

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

#### Skrypt ładowania i wyniki

Przegląd

Otwórz Edytor ładowania danych i dodaj skrypt ładowania do nowej karty poniżej.

Skrypt ładowania zawiera:

* Prosty zestaw danych zawierający listę dat, który jest załadowany do tabeli o nazwie `Calendar`. Została użyta domyślna zmienna systemowa `DateFormat` MM/DD/RRRR.

* Ładowanie poprzedzające, które tworzy dodatkowe pole, o nazwie `daynryear`, używające funkcji `DayNumberOfYear()`.

Oprócz daty do funkcji nie przekazano żadnych innych parametrów.

Skrypt ładowania

```
SET DateFormat='MM/DD/YYYY'; 

Calendar: 
Load 
	date, 
	DayNumberOfYear(date) as daynryear
	;
Load
date
Inline
[ 
date
01/01/2022
01/10/2022
01/31/2022
02/01/2022
02/10/2022
06/30/2022
07/26/2022
10/31/2022
11/01/2022
12/31/2022
];				
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* `date`

* `daynryear`

Tabela wynikowa

| data | daynryear |
| --- | --- |
| 01/01/2022 | 1 |
| 01/10/2022 | 10 |
| 01/31/2022 | 31 |
| 02/01/2022 | 32 |
| 02/10/2022 | 41 |
| 06/30/2022 | 182 |
| 07/26/2022 | 208 |
| 10/31/2022 | 305 |
| 11/01/2022 | 306 |
| 12/31/2022 | 366 |

Pierwszym dniem roku jest 1 stycznia, ponieważ do funkcji `DayNumberOfYear()` nie przekazano drugiego argumentu.

1 stycznia to pierwszy dzień kwartału, natomiast 1 lutego to 32 dzień roku. 30 czerwca to 182., a 31 grudnia to 366. i ostatni dzień roku.

## Przykład 2 – listopad, początek roku (skrypt)

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

#### Skrypt ładowania i wyniki

Przegląd

Otwórz Edytor ładowania danych i dodaj skrypt ładowania do nowej karty poniżej.

Skrypt ładowania zawiera:

* Ten sam zbiór danych, co w pierwszym przykładzie.

* Została użyta domyślna zmienna systemowa `DateFormat` MM/DD/RRRR

* Argument `start_month` oznacza początek 1 listopada. W ten sposób początek roku obrotowego został ustawiony na 1 listopada.

Skrypt ładowania

```

SET DateFormat='MM/DD/YYYY'; 

Calendar: 
Load 
	date, 
	DayNumberOfYear(date,11) as daynryear
	;
Load
date
Inline
[ 
date
01/01/2022
01/10/2022
01/31/2022
02/01/2022
02/10/2022
06/30/2022
07/26/2022
10/31/2022
11/01/2022
12/31/2022
];				
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* `date`

* `daynryear`

Tabela wynikowa

| data | daynryear |
| --- | --- |
| 01/01/2022 | 62 |
| 01/10/2022 | 71 |
| 01/31/2022 | 92 |
| 02/01/2022 | 93 |
| 02/10/2022 | 102 |
| 06/30/2022 | 243 |
| 07/26/2022 | 269 |
| 10/31/2022 | 366 |
| 11/01/2022 | 1 |
| 12/31/2022 | 61 |

Pierwszym dniem roku jest 1 listopada, ponieważ w drugim argumencie do funkcji `DayNumberOfYear()` przekazano wartość 11.

1 stycznia to pierwszy dzień kwartału, natomiast 1 lutego to 32 dzień roku. 30 czerwca to 182., a 31 grudnia to 366. i ostatni dzień roku.

## Przykład 3 – styczeń, początek roku (wykres)

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

#### Skrypt ładowania i wyrażenie wykresu

Przegląd

Otwórz Edytor ładowania danych i dodaj skrypt ładowania do nowej karty poniżej.

Skrypt ładowania zawiera:

* Ten sam zbiór danych, co w pierwszym przykładzie.

* Została użyta domyślna zmienna systemowa `DateFormat` MM/DD/RRRR.

Jednak w tym przykładzie do aplikacji został załadowany niezmieniony zbiór danych. Wartość dnia kwartału jest obliczana przez miarę w obiekcie wykresu.

Skrypt ładowania

```
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
06/30/2022
07/26/2022
10/31/2022
11/01/2022
12/31/2022
]; 
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj to pole jako wymiar: `date`.

Utwórz następującą miarę:

`=daynumberofyear(date)`

Tabela wynikowa

| data | =daynumberofyear(date) |
| --- | --- |
| 01/01/2022 | 1 |
| 01/10/2022 | 10 |
| 01/31/2022 | 31 |
| 02/01/2022 | 32 |
| 02/10/2022 | 41 |
| 06/30/2022 | 182 |
| 07/26/2022 | 208 |
| 10/31/2022 | 305 |
| 11/01/2022 | 306 |
| 12/31/2022 | 366 |

Pierwszym dniem roku jest 1 stycznia, ponieważ do funkcji `DayNumberOfYear()` nie przekazano drugiego argumentu.

1 stycznia to pierwszy dzień roku, natomiast 1 lutego to 32 dzień roku. 30 czerwca to 182., a 31 grudnia to 366. i ostatni dzień roku.

## Przykład 4 – listopad, początek roku (wykres)

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

#### Skrypt ładowania i wyrażenie wykresu

Przegląd

Otwórz Edytor ładowania danych i dodaj skrypt ładowania do nowej karty poniżej.

Skrypt ładowania zawiera:

* Ten sam zbiór danych, co w pierwszym przykładzie.

* Została użyta domyślna zmienna systemowa DateFormat MM/DD/RRRR.

* Rok obrotowy trwa od 1 listopada do 31 października.

Jednak w tym przykładzie do aplikacji został załadowany niezmieniony zbiór danych. Wartość dnia roku jest obliczana przez miarę w obiekcie wykresu.

Skrypt ładowania

```

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
06/30/2022
07/26/2022
10/31/2022
11/01/2022
12/31/2022
]; 
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj to pole jako wymiar: date.

Utwórz następującą miarę:

=daynumberofyear(date)

Tabela wynikowa

| data | =daynumberofyear(date,11) |
| --- | --- |
| 01/01/2022 | 62 |
| 01/10/2022 | 71 |
| 01/31/2022 | 92 |
| 02/01/2022 | 93 |
| 02/10/2022 | 102 |
| 06/30/2022 | 243 |
| 07/26/2022 | 269 |
| 10/31/2022 | 366 |
| 11/01/2022 | 1 |
| 12/31/2022 | 61 |

Pierwszym dniem roku jest 1 listopada, ponieważ w drugim argumencie do funkcji DayNumberOfYear() przekazano wartość 11.

Rok obrotowy trwa od listopada do października. Widać to w tabeli wyników, w której 1 listopada jest pierwszym dniem roku, a 31 października jest 366. i ostatnim dniem roku.