# daynumberofyear 脚本和图表功能

此函数用于计算时间戳所属的年份的天数。从该年度的第一天的第一毫秒开始计算，但可以偏移第一个月。

语法：

DayNumberOfYear(timestamp[,start\_month])

返回数据类型： 整数

参数

| 参数 | 描述 |
| --- | --- |
| timestamp | 要评估的日期或时间戳。 |
| start\_month | 通过在 2 和 12 之间（如果省略，则为 1）指定 start\_month，年初可移动到任何一个月的第一天。例如，如果您想要从 3 月 1 日开始的财政年工作，请指定 start\_month = 3。 |

以下示例使用日期格式 DD/MM/YYYY。日期格式已经在数据加载脚本顶部的 SET DateFormat 语句中指定。可以根据要求更改示例中的格式。

函数示例

| 示例 | 结果 |
| --- | --- |
| `DayNumberOfYear( '12/09/2014' )` | 返回 256，从第一年开始算起的天数。 |
| `DayNumberOfYear( '12/09/2014',3 )` | 返回 196，从第一个三月开始算起的天数。 |

## 示例 1 – 年初 1 月（脚本）

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

#### 加载脚本和结果

概述

打开 数据加载编辑器，并将下面的加载脚本添加到新选项卡。

加载脚本包含：

* 包含日期列表的简单数据集，该数据集加载到名为 `Calendar` 的表中。使用默认 `DateFormat` 系统变量 MM/DD/YYYY。

* 使用 `DayNumberOfYear()` 功能创建另一个名为 `daynryear` 的字段的前置 Load。

除了日期之外，没有为函数提供其他参数。

加载脚本

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

结果表

| 日期 | 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 日是季度的第一天，而 2 月 1 日是年度的第 32 天。6 月 30 日是第 182 日，12 月 31日 是一年中的第 366 天，也是最后一天。

## 示例 2 – 年初 11 月（脚本）

[](https://help.qlik.com/en-US/sense/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`

结果表

| 日期 | 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 日是季度的第一天，而 2 月 1 日是年度的第 32 天。6 月 30 日是第 182 日，12 月 31日 是一年中的第 366 天，也是最后一天。

## 示例 3 – 年初 1 月（图表）

[](https://help.qlik.com/en-US/sense/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)`

结果表

| 日期 | =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 日是年度的第一天，而 2 月 1 日是季度的第 32 天。6 月 30 日是第 182 日，12 月 31日 是一年中的第 366 天，也是最后一天。

## 示例 4 – 年初 11 月（图表）

[](https://help.qlik.com/en-US/sense/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)

结果表

| 日期 | =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 日是本年度的第一天，而 10 月 31 日是年度的第 366 天也是最后一天。