Jump to content
  • 0

Aantal maanden berekenen


Sanne

Question

Posted

Ik heb 2 datums: [Datum_start] en [Datum_Eind].

 

Ik wil graag weten hoeveel maanden (op 1 decimaal nauwkeurig) er tussen die 2 datums ligt.

 

Bijvoorbeeld:

- tussen 10-01-2005 en 10-01-2006 liggen 12 maanden

- tussen 10-02-2005 en 10-01-2006 liggen 11 maanden

- tussen 24-02-2005 en 10-01-2006 liggen 10,5 maanden

 

Heeft iemand daar een mooie formule voor?

8 answers to this question

Recommended Posts

  • 0
Posted

Ongeduldig als ik ben, heb ik zelf al wat bedacht:

 

Case(not IsEmpty(Datum_Eind) ; 

Round(

( 12 * ( Year(Datum_Eind) - Year(Datum_Start) ) ) + 

( Month(Datum_Eind) - Month(Datum_Start) ) + 

( Day(Datum_Eind) - Day(Datum_Start) ) * (1/30)

; 1)

)

Kan dit korter?

  • 0
Posted

Nou, het mooie van bovenstaande versie is dat het ook werkt qua:

 

• tussen 10-01-2005 en 10-01-2004 liggen -12 maanden

• tussen 10-01-2006 en 10-02-2005 liggen -11 maanden

 

Dat mag wel van mij ;)

  • 0
Posted

Jean, dat zou zeker werken als je de periode tussen 2 data wilt weten.

 

In mijn geval gaat het niet om de periode, maar om de duur. Dus dan wil ik wel laten weten dat er een negatief getal ontstaat, wanneer de einddatum vóór de begindatum ligt. Dat biedt ook een stukje invoercontrole of feedback voor de invoerder.

 

Alternatief zou zijn om wanneer de einddatum vóór de begindatum ligt, de duur altijd 0 te laten zijn.

  • 0
Posted
Ik heb 2 datums: [Datum_start] en [Datum_Eind].

 

Ik wil graag weten hoeveel maanden (op 1 decimaal nauwkeurig) er tussen die 2 datums ligt.

 

Bijvoorbeeld:

- tussen 10-01-2005 en 10-01-2006 liggen 12 maanden

- tussen 10-02-2005 en 10-01-2006 liggen 11 maanden

- tussen 24-02-2005 en 10-01-2006 liggen 10,5 maanden

 

Heeft iemand daar een mooie formule voor?

 

In dit geval valt halve maanden nog wel mee, maar vooral met leeftijden vraag ik me altijd af waarom iemand de leeftijd in jaren, maanden en dagen wil weten. Immers, maanden zijn niet even lang.

 

Deze (zonder invoercontrole) had ik liggen voor duur in gehele maanden, misschien heb je er wat aan:

(Year(datum 2) * 12 + Month(datum 2)) -

(Year(datum 1) * 12 + Month(datum 1))

 

Groet,

René

  • 0
Posted
vooral met leeftijden vraag ik me altijd af waarom iemand de leeftijd in jaren, maanden en dagen wil weten

Het gaat bij mij niet om leeftijd. Het gaat bij mij om een grove indicatie van de contractduur.

 

En het is heel gebruikelijk om te denken dat zowel:

 

- tussen 10-02-2005 en 10-03-2005

- tussen 15-08-2005 en 15-09-2005

 

beide de duur "1 maand" is, ook al zijn het niet precies evenveel dagen.

  • 0
Posted
Ongeduldig als ik ben, heb ik zelf al wat bedacht:

 

Kan dit korter?

 

Oe, ah, nog wat bedacht:

 

Round((datum 2 - datum 1) / 30 , 1)

 

Ook zonder invoerbeveiliging.

 

Ipv door 30 delen kan je ook door het gemiddeld aantal dagen in een maand (geen schrikkeljaar) delen : 30,4166666666667

Dan kom je precies op de jouw gewenste uitkomsten uit.

 

Houdoe,

René

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...