# weekstart 指令碼與圖表函數

此功能傳回的值相當於包含 date的行事曆週第一天、第一毫秒的時間戳記。預設的輸出格式為指令碼中所設定的 DateFormat。

語法：

WeekStart(timestamp [, period\_no [, first\_week\_day ]])

傳回的資料類型： 雙值

`weekstart()` 函數判定日期落在哪一週。然後以日期格式傳回該週第一毫秒的時間戳記。該週的第一天由 `FirstWeekDay` 環境變數決定。但是，這可由 `weekstart()` 函數中的 `first_week_day` 引數取代。

引數

| 引數 | 描述 |
| --- | --- |
| timestamp | 要評估的時間戳記。 |
| period\_no | shift 為整數，值 0 表示是包含 date 的週。負值的 shift 表示之前的週，正值表示之後的週。 |
| first\_week\_day | 指定一週開始的日子。如果忽略，將使用變數 FirstWeekDay 的值。<br><br>first\_week\_day 可能的值是對星期一使用 0、對星期二使用 1，對星期三使用 2，對星期四使用 3，對星期五使用 4，對星期六使用 5，並對星期日使用 6。<br><br>如需系統變數的更多資訊，請參閱 [FirstWeekDay](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/FirstWeekDay.htm)。 |

## 何時使用 weekstart

`weekstart()` 函數通常在使用者想要計算使用一週中已經過的部分時，作為運算式的一部分使用。例如，若使用者想要計算員工目前為止在一週中所賺取的總工資，即可使用此函數。

下列範例假設：

```
SET FirstWeekDay=0;
```

函數範例

| 範例 | 結果 |
| --- | --- |
| `weekstart('01/12/2013')` | 傳回 01/07/2013。 |
| `weekstart('01/12/2013', -1 )` | 傳回 11/31/2012。 |
| `weekstart('01/12/2013', 0, 1)` | 傳回 01/08/2013。 |

## 區域設定

除非另有說明，否則此主題中的範例皆使用下列日期格式：MM/DD/YYYY。日期格式是在資料載入指令碼的 `SET DateFormat` 陳述式中指定。由於地區設定和其他因素，您系統中的預設日期格式可能會不同。您可以變更以下範例中的格式，以滿足您的需求。或者，您可以在載入指令碼中變更格式，以符合這些範例。如需詳細資訊，請參閱 [修改用於應用程式和指令碼的區域設定](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/regional-settings-in-apps.htm)。

應用程式中的預設地區設定是根據使用者設定檔。這些地區格式設定與 Qlik Cloud 使用者介面中顯示的語言無關。Qlik Cloud 顯示的語言將與您正在使用的瀏覽器相同。

若您是應用程式建立者，可以為您建立的應用程式設定預設地區。如需詳細資訊，請參閱[Qlik Cloud 分析 中設定用於建立應用程式和指令碼的偏好區域設定](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/UserInterface/Languages.htm#Setting)。

範例：

若您想要週和週數的 ISO 設定，確認指令碼中有下列內容：

```
Set DateFormat   ='YYYY-MM-DD'; 
Set FirstWeekDay =0;    // Monday as first week day
Set BrokenWeeks  =0;    //(use unbroken weeks)
Set ReferenceDay =4;    // Jan 4th is always in week 1
```

若您想要 US 設定，確認指令碼中有下列內容：

```
Set DateFormat   ='M/D/YYYY';
Set FirstWeekDay =6;    // Sunday as first week day
Set BrokenWeeks  =1;    //(use broken weeks)
Set ReferenceDay =1;    // Jan 1st is always in week 1
```

以上範例從 weekstart() 函數產生下列內容：

Weekstart 函數範例

| 日期 | ISO 週開始 | US 週開始 |
| --- | --- | --- |
| Sat 2020 Dec 26 | 2020-12-21 | 12/20/2020 |
| Sun 2020 Dec 27 | 2020-12-21 | 12/27/2020 |
| Mon 2020 Dec 28 | 2020-12-28 | 12/27/2020 |
| Tue 2020 Dec 29 | 2020-12-28 | 12/27/2020 |
| Wed 2020 Dec 30 | 2020-12-28 | 12/27/2020 |
| Thu 2020 Dec 31 | 2020-12-28 | 12/27/2020 |
| Fri 2021 Jan 1 | 2020-12-28 | 12/27/2020 |
| Sat 2021 Jan 2 | 2020-12-28 | 12/27/2020 |
| Sun 2021 Jan 3 | 2020-12-28 | 1/3/2021 |
| Mon 2021 Jan 4 | 2021-01-04 | 1/3/2021 |
| Tue 2021 Jan 5 | 2021-01-04 | 1/3/2021 |

資訊備註在 ISO 欄中，一週在星期一開始，而在 US 欄中，在星期日開始。

## 範例 1 – 無其他引數

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

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

概述

開啟資料載入編輯器並將下面的載入指令碼新增至新的區段。

載入指令碼包含：

* 包含一組 2022 年交易的資料集，這載入到稱為 Transactions 的表格中。

* 以 DateFormat 系統變數 (MM/DD/YYYY) 格式提供的日期欄位。

* 建立欄位 start\_of\_week，這傳回交易發生時每週開始的時間戳記。

載入指令碼

```
SET FirstWeekDay=6;

Transactions:
    Load
        *,
        weekstart(date) as start_of_week,
        timestamp(weekstart(date)) as start_of_week_timestamp
        ;
Load
*
Inline
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
```

結果

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

* date

* start\_of\_week

* start\_of\_week\_timestamp

結果表格

| 日期 | start\_of\_week | start\_of\_week\_timestamp |
| --- | --- | --- |
| 1/7/2022 | 01/02/2022 | 1/2/2022 12:00:00 AM |
| 1/19/2022 | 01/16/2022 | 1/16/2022 12:00:00 AM |
| 2/5/2022 | 01/30/2022 | 1/30/2022 12:00:00 AM |
| 2/28/2022 | 02/27/2022 | 2/27/2022 12:00:00 AM |
| 3/16/2022 | 03/13/2022 | 3/13/2022 12:00:00 AM |
| 4/1/2022 | 03/27/2022 | 3/27/2022 12:00:00 AM |
| 5/7/2022 | 05/01/2022 | 5/1/2022 12:00:00 AM |
| 5/16/2022 | 05/15/2022 | 5/15/2022 12:00:00 AM |
| 6/15/2022 | 06/12/2022 | 6/12/2022 12:00:00 AM |
| 6/26/2022 | 06/26/2022 | 6/26/2022 12:00:00 AM |
| 7/9/2022 | 07/03/2022 | 7/3/2022 12:00:00 AM |
| 7/22/2022 | 07/17/2022 | 7/17/2022 12:00:00 AM |
| 7/23/2022 | 07/17/2022 | 7/17/2022 12:00:00 AM |
| 7/27/2022 | 07/24/2022 | 7/24/2022 12:00:00 AM |
| 8/2/2022 | 07/31/2022 | 7/31/2022 12:00:00 AM |
| 8/8/2022 | 08/07/2022 | 8/7/2022 12:00:00 AM |
| 8/19/2022 | 08/14/2022 | 8/14/2022 12:00:00 AM |
| 9/26/2022 | 09/25/2022 | 9/25/2022 12:00:00 AM |
| 10/14/2022 | 10/09/2022 | 10/9/2022 12:00:00 AM |
| 10/29/2022 | 10/23/2022 | 10/23/2022 12:00:00 AM |

start\_of\_week 欄位在前置 LOAD 陳述式中的建立方式是使用 weekstart() 函數並傳遞日期欄位，作為函數的引數。

The weekstart() 函數最初識別日期值落在哪一週，並傳回該週第一毫秒的時間戳記。

weekstart() 函數的圖表，無其他引數的範例

weekstart() 函數的圖表，無其他引數的範例

weekstart()weekstart() 函數的圖表，無其他引數的範例 ![圖表顯示 weekstart 函數如何將交易日期轉換為交易發生所在週第一毫秒的時間戳記。](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekstart-examples-no-add-arg.png)

交易 8191 發生在 2 月 5 日。FirstWeekDay 系統變數會將每週第一天設為星期日。weekstart() 函數識別 2 月 5 日前的第一個星期六 – 因此是每週的開始 – 落在 1 月 30 日。因此，該交易的 start\_of\_week 值會傳回該日子的第一毫秒，亦即 1 月 30 日上午 12:00:00。

## 範例 2 – period\_no

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

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

概述

開啟資料載入編輯器並將下面的載入指令碼新增至新的區段。

載入指令碼包含：

* 與第一個範例相同的資料集和情境。

* 建立欄位 previous\_week\_start，，這傳回交易發生之前每季開始的時間戳記。

載入指令碼

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

Transactions:
    Load
        *,
        weekstart(date,-1) as previous_week_start,
        timestamp(weekstart(date,-1)) as previous_week_start_timestamp
        ;
Load
*
Inline
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
```

結果

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

* date

* previous\_week\_start

* previous\_week\_start\_timestamp

結果表格

| 日期 | previous\_week\_start | previous\_week\_start\_timestamp |
| --- | --- | --- |
| 1/7/2022 | 12/26/2021 | 12/26/2021 12:00:00 AM |
| 1/19/2022 | 01/09/2022 | 1/9/2022 12:00:00 AM |
| 2/5/2022 | 01/23/2022 | 1/23/2022 12:00:00 AM |
| 2/28/2022 | 02/20/2022 | 2/20/2022 12:00:00 AM |
| 3/16/2022 | 03/06/2022 | 3/6/2022 12:00:00 AM |
| 4/1/2022 | 03/20/2022 | 3/20/2022 12:00:00 AM |
| 5/7/2022 | 04/24/2022 | 4/24/2022 12:00:00 AM |
| 5/16/2022 | 05/08/2022 | 5/8/2022 12:00:00 AM |
| 6/15/2022 | 06/05/2022 | 6/5/2022 12:00:00 AM |
| 6/26/2022 | 06/19/2022 | 6/19/2022 12:00:00 AM |
| 7/9/2022 | 06/26/2022 | 6/26/2022 12:00:00 AM |
| 7/22/2022 | 07/10/2022 | 7/10/2022 12:00:00 AM |
| 7/23/2022 | 07/10/2022 | 7/10/2022 12:00:00 AM |
| 7/27/2022 | 07/17/2022 | 7/17/2022 12:00:00 AM |
| 8/2/2022 | 07/24/2022 | 7/24/2022 12:00:00 AM |
| 8/8/2022 | 07/31/2022 | 7/31/2022 12:00:00 AM |
| 8/19/2022 | 08/07/2022 | 8/7/2022 12:00:00 AM |
| 9/26/2022 | 09/18/2022 | 9/18/2022 12:00:00 AM |
| 10/14/2022 | 10/02/2022 | 10/2/2022 12:00:00 AM |
| 10/29/2022 | 10/16/2022 | 10/16/2022 12:00:00 AM |

在此例中，因為 period\_no 的值 -1 已作為 weekstart() 函數中的偏移引數使用，所以該函數首先會識別交易發生的週。然後這會查看前一週並識別該週的第一毫秒。

weekstart() 函數的圖表，period\_no 範例

weekstart() 函數的圖表，period\_no 範例

weekstart()weekstart() 函數的圖表，period\_no 範例 ![圖表顯示 weekstart 函數如何將交易日期轉換為交易發生所在週第一毫秒的時間戳記。](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekstart-examples-period-no.png)

交易 8196 發生在 6 月 15 日。weekstart() 函數識別該週開始於 6 月 12 日。因此，前一週開始於 6 月 5 日 12:00:00 AM；這是 previous\_week\_start 欄位傳回的值。

## 範例 3 – first\_week\_day

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

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

概述

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

載入指令碼包含與第一個範例相同的資料集和情境。但是在此範例中，我們必須將星期二設為工作週第一天。

載入指令碼

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

Transactions:
    Load
        *,
        weekstart(date,0,1) as start_of_week,
        timestamp(weekstart(date,0,1)) as start_of_week_timestamp
        ;
Load
*
Inline
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
```

結果

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

* date

* start\_of\_week

* start\_of\_week\_timestamp

結果表格

| 日期 | start\_of\_week | start\_of\_week\_timestamp |
| --- | --- | --- |
| 1/7/2022 | 01/04/2022 | 1/4/2022 12:00:00 AM |
| 1/19/2022 | 01/18/2022 | 1/18/2022 12:00:00 AM |
| 2/5/2022 | 02/01/2022 | 2/1/2022 12:00:00 AM |
| 2/28/2022 | 02/22/2022 | 2/22/2022 12:00:00 AM |
| 3/16/2022 | 03/15/2022 | 3/15/2022 12:00:00 AM |
| 4/1/2022 | 03/29/2022 | 3/29/2022 12:00:00 AM |
| 5/7/2022 | 05/03/2022 | 5/3/2022 12:00:00 AM |
| 5/16/2022 | 05/10/2022 | 5/10/2022 12:00:00 AM |
| 6/15/2022 | 06/14/2022 | 6/14/2022 12:00:00 AM |
| 6/26/2022 | 06/21/2022 | 6/21/2022 12:00:00 AM |
| 7/9/2022 | 07/05/2022 | 7/5/2022 12:00:00 AM |
| 7/22/2022 | 07/19/2022 | 7/19/2022 12:00:00 AM |
| 7/23/2022 | 07/19/2022 | 7/19/2022 12:00:00 AM |
| 7/27/2022 | 07/26/2022 | 7/26/2022 12:00:00 AM |
| 8/2/2022 | 08/02/2022 | 8/2/2022 12:00:00 AM |
| 8/8/2022 | 08/02/2022 | 8/2/2022 12:00:00 AM |
| 8/19/2022 | 08/16/2022 | 8/16/2022 12:00:00 AM |
| 9/26/2022 | 09/20/2022 | 9/20/2022 12:00:00 AM |
| 10/14/2022 | 10/11/2022 | 10/11/2022 12:00:00 AM |
| 10/29/2022 | 10/25/2022 | 10/25/2022 12:00:00 AM |

在此例中，因為 first\_week\_date 引數的值 1 已用於 weekstart() 函數中，所以這會將每週第一天設為星期二。

weekstart() 函數的圖表，first\_week\_day 範例

weekstart() 函數的圖表，first\_week\_day 範例

weekstart()weekstart() 函數的圖表，first\_week\_day 範例 ![圖表顯示 weekstart 函數如何將交易日期轉換為交易發生所在週第一毫秒的時間戳記。](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekstart-examples-first-week-day.png)

交易 8191 發生在 2 月 5 日。weekstart() 函數識別此日期前的第一個星期二 – 因此是每週的開始並傳回該值 – 落在 2 月 1 日 12:00:00 AM。

## 範例 4 – 圖表物件範例

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

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

概述

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

載入指令碼包含與第一個範例相同的資料集和情境。

不過，在此範例中，不變的資料集會載入到應用程式中。會建立傳回交易發生週開始時間戳記的計算，作為應用程式圖表物件中的量值。

載入指令碼

```
Transactions:

Load
*
Inline
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
```

結果

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

若要計算交易發生的該週開始時間，新增下列量值：

* =weekstart(date)

* =timestamp(weekstart(date))

結果表格

| 日期 | start\_of\_week | start\_of\_week\_timestamp |
| --- | --- | --- |
| 1/7/2022 | 01/02/2022 | 1/2/2022 12:00:00 AM |
| 1/19/2022 | 01/16/2022 | 1/16/2022 12:00:00 AM |
| 2/5/2022 | 01/30/2022 | 1/30/2022 12:00:00 AM |
| 2/28/2022 | 02/27/2022 | 2/27/2022 12:00:00 AM |
| 3/16/2022 | 03/13/2022 | 3/13/2022 12:00:00 AM |
| 4/1/2022 | 03/27/2022 | 3/27/2022 12:00:00 AM |
| 5/7/2022 | 05/01/2022 | 5/1/2022 12:00:00 AM |
| 5/16/2022 | 05/15/2022 | 5/15/2022 12:00:00 AM |
| 6/15/2022 | 06/12/2022 | 6/12/2022 12:00:00 AM |
| 6/26/2022 | 06/26/2022 | 6/26/2022 12:00:00 AM |
| 7/9/2022 | 07/03/2022 | 7/3/2022 12:00:00 AM |
| 7/22/2022 | 07/17/2022 | 7/17/2022 12:00:00 AM |
| 7/23/2022 | 07/17/2022 | 7/17/2022 12:00:00 AM |
| 7/27/2022 | 07/24/2022 | 7/24/2022 12:00:00 AM |
| 8/2/2022 | 07/31/2022 | 7/31/2022 12:00:00 AM |
| 8/8/2022 | 08/07/2022 | 8/7/2022 12:00:00 AM |
| 8/19/2022 | 08/14/2022 | 8/14/2022 12:00:00 AM |
| 9/26/2022 | 09/25/2022 | 9/25/2022 12:00:00 AM |
| 10/14/2022 | 10/09/2022 | 10/9/2022 12:00:00 AM |
| 10/29/2022 | 10/23/2022 | 10/23/2022 12:00:00 AM |

start\_of\_week 量值在圖表物件中的建立方式是使用 weekstart() 函數並傳遞 date 欄位，作為函數的引數。

The weekstart() 函數最初識別日期值落在哪一週，並傳回該週第一毫秒的時間戳記。

weekstart() 函數的圖表，圖表物件範例

weekstart() 函數的圖表，圖表物件範例

weekstart()weekstart() 函數的圖表，圖表物件範例 ![圖表顯示 weekstart 函數如何將交易日期轉換為交易發生所在週第一毫秒的時間戳記。](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekstart-examples-chart-object.png)

交易 8191 發生在 2 月 5 日。FirstWeekDay 系統變數會將每週第一天設為星期日。weekstart() 函數識別 2 月 5 日前的第一個星期日 – 因此是每週開始 – 落在 1 月 30 日。因此，該交易的 start\_of\_week 值傳回該日子的第一毫秒，亦即 1 月 30 日上午 12:00:00。

## 範例 5 – 情境

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

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

概述

開啟資料載入編輯器並將下面的載入指令碼新增至新的區段。

載入指令碼包含：

* 載入到稱為 Payroll 之表格的資料集。

* 由員工 ID、員工姓名及每個員工賺取的每日工資組成的資料。

員工在星期一開始工作且每週工作六天。FirstWeekDay 系統變數不得修改。

最終使用者想要圖表物件按員工 ID 和員工姓名顯示該週至今所賺取的工資。

載入指令碼

```
Payroll: 
Load
*
Inline 
[
employee_id,employee_name,day_rate
182,Mark, $150
183,Deryck, $125
184,Dexter, $125
185,Sydney,$270
186,Agatha,$128
];
```

結果

請執行下列動作：

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

   * employee\_id

   * employee\_name

2. 接下來，建立量值以計算該週至今所賺取的工資：

   =if(today(1)-weekstart(today(1),0,0)&lt;7,(today(1)-weekstart(today(1),0,0))\*day\_rate,day\_rate\*6)

3. 將量值的數字格式設定為金錢。

結果表格

| employee\_id | employee\_name | =if(today(1)-weekstart(today(1),0,0) &lt; 7,(today(1)-weekstart(today(1),0,0))\*day\_rate,day\_rate\*6) |
| --- | --- | --- |
| 182 | Mark | $600.00 |
| 183 | Deryck | $500.00 |
| 184 | Dexter | $500.00 |
| 185 | Sydney | $1080.00 |
| 186 | Agatha | $512.00 |

藉由使用今日日期作為其第一個引數，weekstart() 函數會將星期一設為該週第一天並傳回目前週的開始日期。以目前日期減去該結果後，運算式會傳回本週目前已經過的天數。

然後條件就會評估本週是否超過六天。如果是的話，員工的 day\_rate 會乘以 6 天。否則，day\_rate 會乘以本週目前為止已經過的天數。