# monthsstart - fonction de script et fonction de graphique

Cette fonction renvoie une valeur correspondant à l'horodatage de la première milliseconde du mois, de la période de deux mois, du trimestre, de la période de quatre mois ou du semestre contenant une date de référence. Il est également possible de rechercher l'horodatage d'une période passée ou future.

MonthsStart(n\_months, date[, period\_no [, first\_month\_of\_year]])

**Type de données renvoyé :** double

Arguments MonthsStart

| Argument | Description |
| --- | --- |
| n\_months | Nombre de mois définissant la période. Entier ou expression qui aboutit à un entier devant correspondre à l'une des valeurs suivantes : 1 (équivalant à la fonction inmonth()), 2 (période de deux mois), 3 (équivalant à la fonction inquarter()), 4 (période de quatre mois) ou 6 (semestre). |
| date | Date à évaluer. |
| period\_no | Il est possible de décaler la période à l'aide de l'argument period\_no, d'un entier ou d'une expression aboutissant à un entier, où la valeur 0 indique la période comprenant l'argument base\_date. Les valeurs négatives spécifiées pour period\_no indiquent les périodes passées tandis que les valeurs positives désignent les périodes à venir. |
| first\_month\_of\_year | Si vous voulez utiliser des exercices (financiers) qui ne commencent pas en janvier, indiquez une valeur comprise entre 2 et 12 dans l'argument first\_month\_of\_year. |

Ces exemples utilisent le format de date DD/MM/YYYY. Le format de date est indiqué dans l'instruction SET DateFormat située en haut de votre script de chargement. Modifiez le format utilisé dans les exemples en fonction de vos exigences.

`monthsstart(4, '19/10/2013')`

Renvoie 1/09/2013.

`monthsstart(4, '19/10/2013', -1)`

Renvoie 01/05/2013.

`monthsstart(4, '19/10/2013', 0, 2  )`

Renvoie 01/10/2013.   
Car le début de l'année devient le mois numéro 2.

Ajoutez l'exemple de script à votre document et exécutez-le. Ensuite, ajoutez au moins les champs répertoriés dans la colonne des résultats à une feuille de votre document afin de visualiser le résultat.

Cet exemple permet de rechercher le premier jour de la période de deux mois pour chaque date de facture, avec un décalage d'une période de deux mois vers l'avant.

`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 *,` `MonthsStart(2, InvDate,  1) AS BiMthsStart` `Resident TempTable;`

`Drop table TempTable;`

La table résultante présente les dates initiales et une colonne contenant la valeur de retour de la fonction MonthsStart().

Résultats de l'exemple 4

| InvDate | BiMthsStart |
| --- | --- |
| 28/03/2012 | 01/05/2012 |
| 10/12/2012 | 01/01/2013 |
| 5/2/2013 | 01/03/2013 |
| 31/3/2013 | 01/05/2013 |
| 19/5/2013 | 01/07/2013 |
| 15/9/2013 | 01/11/2013 |
| 11/12/2013 | 01/01/2014 |
| 2/3/2014 | 01/05/2014 |
| 14/5/2014 | 01/07/2014 |
| 13/6/2014 | 01/07/2014 |
| 7/7/2014 | 01/09/2014 |
| 4/8/2014 | 01/09/2014 |