• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Breukvorm verschil datums in maanden

Status
Niet open voor verdere reacties.

Justin1

Gebruiker
Lid geworden
12 aug 2010
Berichten
9
Hoi, kan iemand mij helpen?

Ik wil graag het verschil tussen twee datums uitdrukken in een breukvorm van maanden. (Niet jaaroverschrijdend.) Bijvoorbeeld:

13 februari 2008 t/m 6 juni 2008. Dit moet worden:

17 dagen van februari + maart, april, mei + 6 dagen van juni.

Dit wordt: 17/29 + 3 + 6/30 = 3,78620896 maanden
 
Wat vind je van deze oplossing?
 

Bijlagen

Of moet het zo zijn?

Heb helaas net nog een foutje ontdekt en hier het bestandje op aangepast:
Als de begin en einddatum in dezelfde maand vallen.
 

Bijlagen

Laatst bewerkt:
@ Thoralf,

Is een fraaie oplossing. :thumb::thumb:
 
@ Gerard,

Er zullen ongetwijfeld snellere, mooiere of eleganter oplossingen zijn, maar een eerste aanzet is in ieder geval gegeven.
Via een UDF zal het wellicht eenvoudiger ogen, maar VBA is nu niet mijn sterkste punt.
 
@Thoralf

Hartelijk bedankt. Nu was ik ondertussen ook op iets gekomen, maar die werkt alleen voor 2008. (Want je moet rekening houden met de schrikkelmaand februari.) Jouw oplossing lijkt voor elk jaar te werken. Mooi!
 
Ja de oplossing werkt voor ieder jaar. Je moet echter wel bedenken, zoals je ook al had aangegeven, geen jaarovergangen en begindatum moet voor de einddatum liggen. Op deze zaken wordt niet gecontroleerd en er wordt van uit gegaan dat het zo is.
 
Justin

Ook ik heb een kleine poging gedaan om deze vraag te beantwoorden.
Volgens mij, maar laat het weten als het niet zo is, werkt deze ook over het jaar heen.
Code:
=((JAAR($A$2)-JAAR($A$1))*12)+(MAAND($A$2)-MAAND($A$1)-1)+(LAATSTE.DAG($A$1;0)-$A$1)/DAG(LAATSTE.DAG($A$1;0))+DAG($A$2)/DAG(LAATSTE.DAG($A$2;0))
 
zo iets?

als je alles combineert kun je er best een(lange onoverzichtelijke) formule van maken

groet sylvester
 
Sylvester,

De formule wordt inderdaad wel lang en iets minder onoverzichtelijk, maar gelukkig gaf mijn formule hetzelfde antwoord als jouw berekening.
Het is een leuke oefening maar wat kan je hier mee ?:rolleyes::rolleyes:
 
@ Sylvester en Gerard

Als ik zo snel even de resultaten bekijk dan komt het mij voor dat het geheel correct is zoals Sylvester het uitrekent.

Los van de insteek van de vraagsteller zou ik op de vraag wat kun je er mee willen antwoorden:
Je hebt hier een methode in handen het verschil tussen twee data exact in maanden te berekenen, zonder dat je afhankelijk bent van afrondingen ten aanzien maandlengte of jaarlengte, en gebaseerd op het werkelijk aantal dagen in de begin- en eindmaand. Ook zou je op deze wijze het verschil in jaren kunnen bereken, hoewel dat natuurlijk minder afwijkingen zal vertonen dan de berekening in maanden.
Vraag blijft dan natuurlijk waar heb ik die nauwkeurigheid nodig?
Suggestie: bij boeteclausules in contracten, waarbij die gerelateerd worden aan maanden vertraging. ????

In elk geval, Justin, jouw vraag heeft weer eens een aardige exercitie opgeleverd, waarbij voortborduren op voorgaande resultaten sommigen wellicht op nieuwe ideeën brengt of reeds heeft gebracht.
Al met al dan toch weer een groot goed zo'n forum.
 
@ Sylvester en Gerard

Als ik zo snel even de resultaten bekijk dan komt het mij voor dat het geheel correct is zoals Sylvester het uitrekent.

Los van de insteek van de vraagsteller zou ik op de vraag wat kun je er mee willen antwoorden:
Je hebt hier een methode in handen het verschil tussen twee data exact in maanden te berekenen, zonder dat je afhankelijk bent van afrondingen ten aanzien maandlengte of jaarlengte, en gebaseerd op het werkelijk aantal dagen in de begin- en eindmaand. Ook zou je op deze wijze het verschil in jaren kunnen bereken, hoewel dat natuurlijk minder afwijkingen zal vertonen dan de berekening in maanden.
Vraag blijft dan natuurlijk waar heb ik die nauwkeurigheid nodig?
Suggestie: bij boeteclausules in contracten, waarbij die gerelateerd worden aan maanden vertraging. ????

In elk geval, Justin, jouw vraag heeft weer eens een aardige exercitie opgeleverd, waarbij voortborduren op voorgaande resultaten sommigen wellicht op nieuwe ideeën brengt of reeds heeft gebracht.
Al met al dan toch weer een groot goed zo'n forum.


Ik had het nodig voor toeslagberekeningen. Kosten en tarieven worden op maandelijkse basis vastgesteld, maar bij gebroken maanden moeten die vastgestelde grondslagen omgerekend worden naar gebroken periodes.
 
Justin

Het doel is mij nu duidelijk. Als jij tevreden bent met het resultaat zou je dan de vraag als opgelost kunnen zetten ?
 
hoi

ja kan natuurlijk ook zelf een functie maken:

bv zoiets

Code:
Function Maanden(Datum1 As Date, Datum2 As Date)
  Dim DatumTemp As Date
  Dim Maandlengte1 As Integer, Maandlengte2 As Integer
  Dim Dagen1 As Integer, Dagen2 As Integer, M As Integer, Jaren As Integer
  If Datum1 > Datum2 Then     'Verwissel invoer data
    DatumTemp = Datum1
    Datum1 = Datum2
    Datum2 = DatumTemp
  End If
  Maandlengte1 = DateSerial(Year(Datum1), Month(Datum1) + 1, 1) - (Datum1 - Day(Datum1) + 1)
  Maandlengte2 = DateSerial(Year(Datum2), Month(Datum2) + 1, 1) - (Datum2 - Day(Datum2) + 1)
  Dagen1 = Maandlengte1 - Day(Datum1)
  Dagen2 = Day(Datum2)
  M = Month(Datum2) - Month(Datum1) - 1
  Jaren = Year(Datum2) - Year(Datum1)
  Maanden = Jaren * 12 + M + Dagen1 / Maandlengte1 + Dagen2 / Maandlengte2
End Function

groet sylvester
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan