Ga naar inhoud
  • 0

Aantal maanden berekenen


Sanne

Vraag

Geplaatst:

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 antwoorden op deze vraag

Aanbevolen berichten

  • 0
Geplaatst:

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
Geplaatst:

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
Geplaatst:

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
Geplaatst:
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
Geplaatst:
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
Geplaatst:
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é

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Beantwoord deze vraag...

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...