# daynumberofyear 指令碼與圖表函數

此函數會計算時間戳記在當年的第幾天。該計算從當年第一天的第一毫秒開始進行，但是第一個月可能發生位移。

語法：

DayNumberOfYear(timestamp[,start\_month])

傳回的資料類型： 整數

引數

| 引數 | 描述 |
| --- | --- |
| timestamp | 要評估的時間戳記。 |
| start\_month | 透過指定 start\_month 介於 2 和 12 之間 (如果省略，則為 1)，可將年初向前移到任何月份的第一天。例如，如果要使用起始於 3 月 1 日的會計年度，可指定 start\_month = 3。 |

這些範例使用日期格式 DD/MM/YYYY。日期格式是在位於資料載入指令碼頂端的 SET DateFormat 陳述式中指定。變更範例中的格式，以滿足您的需求。

函數範例

| 範例 | 結果 |
| --- | --- |
| `DayNumberOfYear( '12/09/2014' )` | 傳回 256，從年度第一天算起的天數。 |
| `DayNumberOfYear( '12/09/2014',3 )` | 傳回 196，從 3 月 1 日開始計數的天數。 |

## 範例 1 – 1 月是一年的開始 (指令碼)

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

#### 載入指令碼和結果

概述

開啟 資料載入編輯器 並將下面的載入指令碼新增至新的索引標籤。

載入指令碼包含：

* 包含日期清單的簡單資料集，載入到名為 `Calendar` 的表格中。使用預設 `DateFormat` 系統變數 MM/DD/YYYY。

* 使用 `DayNumberOfYear()` 函數建立附加欄位 (名稱為 `daynryear`) 的前置載入。

除了日期，不會向函數提供其他參數。

載入指令碼

```
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
];				
```

結果

載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度：

* `date`

* `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 |

該年的第一天是 1 月 1 日，因為沒有第二引數傳遞至 `DayNumberOfYear()` 函數中。

1 月 1 日是該季的第 1 天，而 2 月 1 日是該年的第 32 天。6 月 30 日是該年的第 182 天，而 12 月 31 日則是該年的第 366 天和最後一天。

## 範例 2 – 11 月是一年的開始 (指令碼)

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

#### 載入指令碼和結果

概述

開啟 資料載入編輯器 並將下面的載入指令碼新增至新的索引標籤。

載入指令碼包含：

* 資料集與第一個範例中相同。

* 使用預設 `DateFormat` 系統變數 MM/DD/YYYY

* 在 11 月 1 日開始的 `start_month` 引數。這將會計年度設定為 11 月 1 日。

載入指令碼

```

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
];				
```

結果

載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度：

* `date`

* `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 |

該年的第一天是 11 月 1 日，因為傳遞至 `DayNumberOfYear()` 函數中的第二引數是 11。

1 月 1 日是該季的第 1 天，而 2 月 1 日是該年的第 32 天。6 月 30 日是該年的第 182 天，而 12 月 31 日則是該年的第 366 天和最後一天。

## 範例 3 – 1 月是一年的開始 (圖表)

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/daynumberofyear.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
06/30/2022
07/26/2022
10/31/2022
11/01/2022
12/31/2022
]; 
```

結果

載入資料並開啟工作表。建立新的表格並將此欄位新增為維度： `date`。

建立下列量值：

`=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 |

該年的第一天是 1 月 1 日，因為沒有第二引數傳遞至 `DayNumberOfYear()` 函數中。

1 月 1 日是該年的第 1 天，而 2 月 1 日是該年的第 32 天。6 月 30 日是該年的第 182 天，而 12 月 31 日則是該年的第 366 天和最後一天。

## 範例 4 – 11 月是一年的開始 (圖表)

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

#### 載入指令碼和圖表運算式

概述

開啟 資料載入編輯器 並將下面的載入指令碼新增至新的索引標籤。

載入指令碼包含：

* 資料集與第一個範例中相同。

* 使用預設 DateFormat 系統變數 MM/DD/YYYY。

* 會計年度自 11 月 1 日起，至 10 月 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
06/30/2022
07/26/2022
10/31/2022
11/01/2022
12/31/2022
]; 
```

結果

載入資料並開啟工作表。建立新的表格並將此欄位新增為維度： date。

建立下列量值：

=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 |

該年的第一天是 11 月 1 日，因為傳遞至 DayNumberOfYear() 函數中的第二引數是 11。

會計年度自 11 月起，至 10 月止。結果表格中顯示，11 月 1 日是該年的第 1 天，而 10 月 31 日是該年的第 366 天和最後一天。