Bruno VDK Posted January 29, 2014 Posted January 29, 2014 Ik heb (naar alle waarschijnlijkheid) een custom function nodig dat het volgende weergeeft: als reeks van datums, iedere dag tussen dateStart en dateEnd die valt op de 15de van de maand en de laatste dag van die maand. Voorbeeld: dateStart: 01-02-2014 dateEnd: 08-04-2014 List returned: 15-02-2014 28-02-2014 15-03-2014 31-03-2014 Heeft iemand iets op het schap liggen ? Quote
0 rmw Posted January 29, 2014 Posted January 29, 2014 Zoiets? Functie: DatumReeks ( theStart ; theEnd ) Code: Let ( [ xStart = Max ( Date ( Month ( theStart ) ; 15 ; Year ( theStart ) ) ; theStart ) ; xNext = If ( Day ( xStart ) = 15 ; xStart ; Date ( Month ( xStart ) + 1 ; 0 ; Year ( xStart ) ) ) ] ; If ( xNext ≤ theEnd ; xNext ; "" ) & "¶" & If ( xNext > theEnd ; "" ; DatumReeks ( xNext + 1 ; theEnd ) ) ) rmw Quote
0 Bruno VDK Posted February 8, 2014 Author Posted February 8, 2014 Werkt perfect, rmw, bedankt. Kan dit aangepast worden met enkele aanvullende eisen? Indien een gegeven veld de waarde "weekly" heeft, moeten we de dichtsbijzijnde zaterdag hebben. Indien een gegeven veld de waarde "bi-weekly" heeft moeten we de 15 van de gegeven maand hebben, en als het al voorbij de 15de is moeten we de laatste dag van de gegeven maand hebben. Alles te berekenen vanaf dateStart. Quote
0 rmw Posted February 9, 2014 Posted February 9, 2014 Er vanuit gaande dat bij een wekelijkse reeks het einde van de maand niet meer van toepassing is, kan dat als volgt: Functie: DatumReeks ( theStart ; theEnd ; theFrequency ) Code: Let ( [ xCheck = If ( theFrequency = "weekly" ; Day ( theStart + ( 7 - DayOfWeek ( theStart ) ) ) ; 15 ) ; xStart = If ( theFrequency = "weekly" ; theStart + ( 7 - DayOfWeek ( theStart ) ) ; Max ( Date ( Month ( theStart ) ; xCheck ; Year ( theStart ) ) ; theStart ) ) ; xNext = If ( Day ( xStart ) = xCheck ; xStart ; If ( theFrequency = "weekly" ; xStart + 7 ; Date ( Month ( xStart ) + 1 ; 0 ; Year ( xStart ) ) ) ) ] ; If ( xNext ≤ theEnd ; xNext ; "" ) & "¶" & If ( xNext > theEnd ; "" ; DatumReeks ( xNext + 1 ; theEnd ; theFrequency ) ) ) Zoals je ziet wordt alleen op frequentie "weekly" gecontroleerd. Elke andere inhoud wordt per definitie als "bi-weekly" behandeld. rmw Quote
Question
Bruno VDK
Ik heb (naar alle waarschijnlijkheid) een custom function nodig dat het volgende weergeeft:
als reeks van datums, iedere dag tussen dateStart en dateEnd die valt op de 15de van de maand en de laatste dag van die maand.
Voorbeeld:
dateStart: 01-02-2014
dateEnd: 08-04-2014
List returned:
15-02-2014
28-02-2014
15-03-2014
31-03-2014
Heeft iemand iets op het schap liggen ?
3 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.