# ReferenceDay

该设置定义了将1月的哪一天设置为定义第 1 周的参考日。换句话说，该设置规定了第 1 周中有多少天必须是 1 月内的日期。

语法：

ReferenceDay

`ReferenceDay` 设置一年中第一周包含的天数。`ReferenceDay` 可以设置为 `1` 和 `7` 之间的任何值。`1-7` 范围之外的任何值都被解释为周的中点 (`4`)，这相当于 `ReferenceDay` 设置为 `4`。

如果未为 `ReferenceDay` 设置选择值，则默认值将显示 `ReferenceDay=0`，该值将被解释为周的中点 (`4`)，如 `ReferenceDay` 表值所示。

`ReferenceDay` 函数通常与以下功能结合使用：

相关函数

| 变量 | 交互 |
| --- | --- |
| [BrokenWeeks](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/BrokenWeeks.htm) | 如果 Qlik Sense 应用程序 在连续几周内运行，则将强制执行 `ReferenceDay` 变量设置。但是，如果正在使用中断周，则第 1 周将从 1 月 1 日开始，并与 `FirstWeekDay` 变量设置一起终止，并忽略该 `ReferenceDay` 标志。 |
| [FirstWeekDay](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/FirstWeekDay.htm) | 整数用于定义将哪一天用作一周的第一天。 |

Qlik Sense 允许为 `ReferenceDay` 设置以下值：

ReferenceDay 值

| 值 | 参考日 |
| --- | --- |
| 0（默认） | 1 月 4 日 |
| 1 | 1 月 1 日 |
| 2 | 1 月 2 日 |
| 3 | 1 月 3 日 |
| 4 | 1 月 4 日 |
| 5 | 1 月 5 日 |
| 6 | 1 月 6 日 |
| 7 | 1 月 7 日 |

在以下示例中， `ReferenceDay = 3` 将 1 月 3 日定义为参考日：

`SET ReferenceDay=3; //(set January 3 as the reference day)`

有关使用内联加载的详细信息，请参见[使用内联加载来加载数据](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm)。

## 区域设置

除非另有规定，本主题中的示例使用以下日期格式：MM/DD/YYYY。日期格式已经在数据加载脚本中的 `SET DateFormat` 语句中指定。由于区域设置和其他因素，系统中的默认日期格式可能有所不同。您可以更改以下示例中的格式以满足您的要求。或者，您可以更改加载脚本中的格式以匹配这些示例。有关更多信息，请参阅[修改应用程序和脚本的区域设置](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/regional-settings-in-apps.htm)。

应用程序中的默认区域设置基于用户配置文件。这些区域格式设置与 Qlik Cloud 用户界面中显示的语言无关。Qlik Cloud 将以与您使用的浏览器相同的语言显示。

如果你是应用程序创建者，你可以为自己创建的应用程序设置默认区域。有关更多信息，请参阅[设置 Qlik Cloud Analytics 中创建应用程序和脚本所用的首选区域设置](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/UserInterface/Languages.htm#Setting)。

示例：

如果您想要周和周数的 ISO 设置，请确保脚本中包含以下内容：

```
Set FirstWeekDay=0;  
Set BrokenWeeks=0;   
Set ReferenceDay=4;    // Jan 4th is always in week 1
```

如果需要 US 设置，请确保脚本中包含以下内容：

```
Set FirstWeekDay=6;
Set BrokenWeeks=1;
Set ReferenceDay=1;     // Jan 1st is always in week 1
```

## 示例 1 – 使用默认值加载脚本；ReferenceDay=0

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

#### 加载脚本和结果

概述

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

加载脚本包含：

* `ReferenceDay` 变量，设置为 `0`。

* `BrokenWeeks` 变量，设置为 `0`，这迫使应用程序使用连续数周。

* 从 2019 年底到 2020 年初的日期的数据集。

加载脚本

```
SET BrokenWeeks = 0; 
SET ReferenceDay = 0; 

Sales: 
LOAD 
date, 
sales, 
week(date) as week, 
weekday(date) as weekday 
Inline [ 
date,sales 
12/27/2019,5000 
12/28/2019,6000 
12/29/2019,7000 
12/30/2019,4000 
12/31/2019,3000 
01/01/2020,6000 
01/02/2020,3000 
01/03/2020,6000 
01/04/2020,8000 
01/05/2020,5000 
01/06/2020,7000 
01/07/2020,3000 
01/08/2020,5000 
01/09/2020,9000 
01/10/2020,5000 
01/11/2020,7000 
]; 
```

结果

加载数据并打开工作表。创建新表并将这些字段添加为维度：

` 
                                    
                                        date
                                    
                                    
                                        week
                                    
                                    
                                        weekday
                                    
                                 `

结果表

| 日期 | 周 | weekday |
| --- | --- | --- |
| 2019 年 12 月 27 日 | 52 | Fri |
| 2019 年 12 月 28 日 | 52 | Sat |
| 2019 年 12 月 29 日 | 1 | Sun |
| 2019 年 12 月 30 日 | 1 | Mon |
| 2019 年 12 月 31 日 | 1 | Tue |
| 2020 年 1 月 1 日 | 1 | Wed |
| 2020 年 1 月 2 日 | 1 | Thu |
| 2020 年 1 月 3 日 | 1 | Fri |
| 2020 年 1 月 4 日 | 1 | Sat |
| 2020 年 1 月 5 日 | 2 | Sun |
| 2020 年 1 月 6 日 | 2 | Mon |
| 2020 年 1 月 7 日 | 2 | Tue |
| 2020 年 1 月 8 日 | 2 | Wed |
| 2020 年 1 月 9 日 | 2 | Thu |
| 01/10/2020 | 2 | Fri |
| 2020 年 1 月 11 日 | 2 | Sat |

第 52 周将于 12 月 28 日星期六结束。因为 `ReferenceDay` 需要将 1 月 4 日包括在第 1 周中，因此第 1 周从 12 月2 9 日开始，到 1 月 4 号星期六结束。

## 示例 - ReferenceDay 变量设置为 5

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

#### 加载脚本和结果

概述

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

加载脚本包含：

* `ReferenceDay` 变量，设置为 `5`。

* `BrokenWeeks` 变量，设置为 `0`，这迫使应用程序使用连续数周。

* 从 2019 年底到 2020 年初的日期的数据集。

加载脚本

```
SET BrokenWeeks = 0; 
SET ReferenceDay = 5; 
 
Sales: 
LOAD 
date, 
sales, 
week(date) as week, 
weekday(date) as weekday 
Inline [ 
date,sales 
12/27/2019,5000 
12/28/2019,6000 
12/29/2019,7000 
12/30/2019,4000 
12/31/2019,3000 
01/01/2020,6000 
01/02/2020,3000 
01/03/2020,6000 
01/04/2020,8000 
01/05/2020,5000 
01/06/2020,7000 
01/07/2020,3000 
01/08/2020,5000 
01/09/2020,9000 
01/10/2020,5000 
01/11/2020,7000 
]; 
```

结果

加载数据并打开工作表。创建新表并将这些字段添加为维度：

` 
                                    
                                        date
                                    
                                    
                                        week
                                    
                                    
                                        weekday
                                    
                                 `

结果表

| 日期 | 周 | weekday |
| --- | --- | --- |
| 2019 年 12 月 27 日 | 52 | Fri |
| 2019 年 12 月 28 日 | 52 | Sat |
| 2019 年 12 月 29 日 | 53 | Sun |
| 2019 年 12 月 30 日 | 53 | Mon |
| 2019 年 12 月 31 日 | 53 | Tue |
| 2020 年 1 月 1 日 | 53 | Wed |
| 2020 年 1 月 2 日 | 53 | Thu |
| 2020 年 1 月 3 日 | 53 | Fri |
| 2020 年 1 月 4 日 | 53 | Sat |
| 2020 年 1 月 5 日 | 1 | Sun |
| 2020 年 1 月 6 日 | 1 | Mon |
| 2020 年 1 月 7 日 | 1 | Tue |
| 2020 年 1 月 8 日 | 1 | Wed |
| 2020 年 1 月 9 日 | 1 | Thu |
| 01/10/2020 | 1 | Fri |
| 2020 年 1 月 11 日 | 1 | Sat |

第 52 周将于 12 月 28 日星期六结束。`BrokenWeeks` 变量，这迫使应用程序使用连续数周。`5` 的参考日值要求将 1 月 5 日包括在第 1 周中。

然而，这是去年第 52 周结束后的 8 天。因此，第 53 周从 12 月 29 日开始，1 月 4 日结束。第 1 周从 1 月 5 日星期日开始。