# lunarweekstart - script and chart function

This function returns a value corresponding to a timestamp of the first millisecond of the lunar week containing date. Lunar weeks in QlikView are defined by counting 1 January as the first day of the week.

Syntax:

LunarweekStart(date[, period\_no[, first\_week\_day]])

**Return data type:** dual

Arguments:

LunarweekStart arguments

| Argument | Description |
| --- | --- |
| date | The date to evaluate. |
| period\_no | period\_no<br>is an integer or expression resolving to an integer, where the value 0 indicates the lunar week which contains<br>date. Negative values in period\_no indicate preceding lunar weeks<br>and positive values indicate succeeding lunar weeks. |
| first\_week\_day | An offset that may be greater than or less than zero. This changes the beginning of the year by the specified number of days and/or fractions of<br>a day. |

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:

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

Returns 08/01/2013.

Example 2:

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

Returns 01/01/2013.

Example 3:

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

Returns 09/01/2013.   
Because the offset specified by setting first\_week\_day to 1 means the beginning of the year is changed to 02/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 lunar week of each invoice date in the table, where the date is shifted by one week by specifying period\_no as 1.

`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 *,` `LunarWeekStart(InvDate, 1) AS LWkStart` `Resident TempTable;`

`Drop table TempTable;`

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

Example 4 results

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