Sanne Posted January 10, 2005 Posted January 10, 2005 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? Quote
0 Sanne Posted January 10, 2005 Author Posted January 10, 2005 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? Quote
0 Rony Rabijns Posted January 10, 2005 Posted January 10, 2005 Je moet ook nog checken of je einddatum wel verder in de toekomst ligt tov de begindatum ... Quote
0 Sanne Posted January 10, 2005 Author Posted January 10, 2005 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 Quote
0 JeanWM Posted January 10, 2005 Posted January 10, 2005 ...en met Abs() ben je verlost van het min teken.... Quote
0 Sanne Posted January 12, 2005 Author Posted January 12, 2005 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. Quote
0 rgaros Posted January 12, 2005 Posted January 12, 2005 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é Quote
0 Sanne Posted January 12, 2005 Author Posted January 12, 2005 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. Quote
0 rgaros Posted January 12, 2005 Posted January 12, 2005 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é Quote
Question
Sanne
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
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.