# weekstart - script and chart function

This function returns a value corresponding to a timestamp of the first millisecond of the first day (Monday) of the calendar week containing date. The default output format is the DateFormat set in the script.

Syntax:

WeekStart(date [, period\_no = 0 [, first\_week\_day=0]])

**Return data type:** dual

Arguments:

WeekStart arguments

| Argument | Description |
| --- | --- |
| date | The date to evaluate. |
| period\_no | shift is an integer, where the value<br>0 indicates the week which contains date.<br>Negative values in shift indicate preceding weeks and positive values<br>indicate succeeding weeks. |
| first\_week\_day | If you don't specify first\_week\_day, the value of variable FirstWeekDay will be used as the first day of the week.<br><br>If you want to use another day as the first day of the week, set first\_week\_day to:<br><br><ul> <li>0 for Monday</li> <li>1 for Tuesday</li> <li>2 for Wednesday</li> <li>3 for Thursday</li> <li>4 for Friday</li> <li>5 for Saturday</li> <li>6 for Sunday</li> </ul><br><br>The integer returned by the function will now use the first day of the week that you set with first\_week\_day as base (0). |

Examples and results:

These examples use the date format DD/MM/YYYY. The date format is specified in the SET DateFormat statement at the top of your load script. Change the format in the examples to suit your requirements.

Example 1:

`weekstart('12/01/2013')`

Returns 07/01/2013.

Example 2:

`weekstart('12/01/2013', -1 )`

Returns 31/11/2012.

Example 3:

`weekstart('12/01/2013', 0, 1)`

Returns 08/01/2013.

Example 4:

Add the example script to your document and run it. Then add, at least, the fields listed in the results column to a sheet in your document to see the result.

This example finds the first day of the week following the week of each invoice date in the table.

`TempTable:` `LOAD RecNo() as InvID, * Inline [` `InvDate` `28/03/2012` `10/12/2012` `5/2/2013` `31/3/2013` `19/5/2013` `15/9/2013` `11/12/2013` `2/3/2014` `14/5/2014` `13/6/2014` `7/7/2014` `4/8/2014` `];` ` ` `InvoiceData:` `LOAD *,` `WeekStart(InvDate, 1) AS WkStart` `Resident TempTable;`

`Drop table TempTable;`

The resulting table contains the original dates and a column with the return value of the weekstart() function. You can display the full timestamp by specifying the formatting in the chart properties.

Example 4 results

| InvDate | WkStart |
| --- | --- |
| 28/03/2012 | 02/04/2012 |
| 10/12/2012 | 17/12/2012 |
| 5/2/2013 | 11/02/2013 |
| 31/3/2013 | 01/04/2013 |
| 19/5/2013 | 20/05/2013 |
| 15/9/2013 | 16/09/2013 |
| 11/12/2013 | 16/12/2013 |
| 2/3/2014 | 03/03/2014 |
| 14/5/2014 | 19/05/2014 |
| 13/6/2014 | 16/06/2014 |
| 7/7/2014 | 14/07/2014 |
| 4/8/2014 | 11/08/2014 |