#### Howdy, Stranger!

It looks like you're new here. Sign in or register to get started.

Options

# Calulating start/end dates for each month i.e. Jan

Member Posts: 107
edited 2006-11-23
Hi,

Does anyone know a way of calculating the start and end dates of each month in the current year?

Jamie

• Options
Try this code:
```intYear := DATE2DMY(TODAY,3);
FOR i := 1 TO 12 DO BEGIN
datStartDate := DMY2DATE(1,i,intYear);
datEndDate := CALCDATE('<+1M-1D>',datStartDate);
MESSAGE('Month %1: %2 - %3',i,datStartDate,datEndDate);
END;
```
No support using PM or e-mail - Please use this forum. BC TechDays 2024: 13 & 14 June 2024, Antwerp (Belgium)
• Options
Member Posts: 509
David Cox wrote:
Try this code:
```intYear := DATE2DMY(TODAY,3);
FOR i := 1 TO 12 DO BEGIN
datStartDate := DMY2DATE(1,i,intYear);
datEndDate := CALCDATE('<+1M-1D>',datStartDate);
MESSAGE('Month %1: %2 - %3',i,datStartDate,datEndDate);
END;
```

Or try
datEndDate := CALCDATE('CM',datStartDate);

Hi Jamie
You might find these useful for reference as well
'-CM' = First Day and 'CM' = Last Day
You also have the same for week '-CW' and CW

FirstDay := CALCDATE('-CM',TODAY);
LastDay := CALCDATE('CM',TODAY);

Dave
Analyst Developer with over 17 years Navision, Contract Status - Busy
Mobile: +44(0)7854 842801
• Options
David Cox wrote:
datEndDate := CALCDATE('CM',datStartDate);
Don't forget the multi-language aspect in your code, so you would better write
```datEndDate := CALCDATE('<CM>',datStartDate);
```
so it works independant of the users language.
No support using PM or e-mail - Please use this forum. BC TechDays 2024: 13 & 14 June 2024, Antwerp (Belgium)
• Options
Member Posts: 107
Thanks for all your help guys.

Worked perfectly.

Jamie