Archief - PHP: aantal dagen zonder weekends tussen twee datums berekenen

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Veg

Legacy Member
Ik heb een begindatum en een einddatum, ik weet hoe ik het aantal dagen dat dit zijn kan berekenen, maar ik weet niet hoeveel dagen dit zijn zonder zaterdagen en zondagen mee te tellen. Weet iemand hoe dit moet?

Rvl

Legacy Member
@acidreign: als hij nu vrijdag begint te tellen en maandag stopt zou hij ook 2 dagen moeten aftrekken en dan zijn er nog geen 7 dagen voorbij gegaan dus u methode is iets te simplistisch tbh
www.php.net/date is een van de mogelijke oplossingen

RpR

Legacy Member
Rvl zei:
@acidreign: als hij nu vrijdag begint te tellen en maandag stopt zou hij ook 2 dagen moeten aftrekken en dan zijn er nog geen 7 dagen voorbij gegaan dus u methode is iets te simplistisch tbh
www.php.net/date is een van de mogelijke oplossingen
Acid zijn ding klopt nochtans.

Je doet het aantal dagen verschil gedeeld door 7 (Wel geen komma's gebruiken) en dat getal doe je maal 2 en trek je af van het aantal dagen.

Om het op jouw voorbeeld te demonstreren. 4/7 is na de komma dus 0 x 2 = 0... dus 4 - 0 is 0...

killgore

Legacy Member
RpR zei:
Acid zijn ding klopt nochtans.

Je doet het aantal dagen verschil gedeeld door 7 (Wel geen komma's gebruiken) en dat getal doe je maal 2 en trek je af van het aantal dagen.

Om het op jouw voorbeeld te demonstreren. 4/7 is na de komma dus 0 x 2 = 0... dus 4 - 0 is 0...
en van maandag tot volgende week vrijdag? dat zijn dan 11 dagen (kheb # dagen zoals jullie berekend, ge kunt ook 12 zeggen).

Dan hebde 11/7 = 1 (gehele deling) -2 = -1

en wa zijde dan met die -1???

Of mis ek iets in uw algoritme :p.

Lashknife

Legacy Member
interpretatie foutje killgore :)

11/7 = 1 -> 1x2 = 2 -> 11-2 = 9 dagen, klopt dit? dacht het wel :p

killgore

Legacy Member
Lashknife zei:
interpretatie foutje killgore :)

11/7 = 1 -> 1x2 = 2 -> 11-2 = 9 dagen, klopt dit? dacht het wel :p
ah, k ja, khad me ergens mislezen bij aftrekken van die 0 :p.

Ma dan klopt et nog niet :)

Vrijdag -> maandag: 4 dagen (of 3, is tzelfde): moeten normaal 2 van afgetrokken worden, word tniet met deze methode (4/7 = 0, 0*2=0)

Het beste dat je kan doen is het weeknr opvragen en op basis van dat gaan werken ;).

Lashknife

Legacy Member
ik denk dat je dit eenvoudig kan oplossen door als het aantal dagen kleiner is dan 7 (risico over weekend of niet) dat je de weeknr's van de 2 grensdatums bekijkt en dan bij een verschil dat gaat verminderen met 2

op voorwaarde dat er nooit gezegd kan worden "van dinsdag tot zaterdag, maar dan zaterdag er wel afhouden omdat het een weekend dag is", want da's een andere check weer

Rvl

Legacy Member
RpR zei:
Acid zijn ding klopt nochtans.

Je doet het aantal dagen verschil gedeeld door 7 (Wel geen komma's gebruiken) en dat getal doe je maal 2 en trek je af van het aantal dagen.

Om het op jouw voorbeeld te demonstreren. 4/7 is na de komma dus 0 x 2 = 0... dus 4 - 0 is 0...
Ik denk toch wel dat ik hier juist zit en jij niet ;) werken met date("w", ...); als ik me niet vergis

NeoNeke

Legacy Member
of voor de mannen die het echt niet vertrouwen zo kan men natuurlijk makkelijk een loop maken tussen de twee verschillende dagen.

in loop check je of de dag op een zaterdag of een zondag, zoniet dan tel je

schematisch:

tel aantal dagen tussen twee data
maak teller "dag" aan
loop alle datums af vanaf de vroegste datum (via makedate iedere maal + i te doen bij de dag)
check de dag van de week van die datum+i
als dag niet gelijk is aan zaterdag of zondag: verhoog teller dag

NeoNeke

Legacy Member
ff een uurke later nu ik erover denk

stel ge rekent van maandag tot de donderdag ervoor
dan hebde geen zeven dagen maar wel een weekend, dus de redenering per zeven dagen twee aftrekken gaat niet (altijd) op

killgore

Legacy Member
NeoNeke zei:
ff een uurke later nu ik erover denk

stel ge rekent van maandag tot de donderdag ervoor
dan hebde geen zeven dagen maar wel een weekend, dus de redenering per zeven dagen twee aftrekken gaat niet (altijd) op

me zei:
Ma dan klopt et nog niet

Vrijdag -> maandag: 4 dagen (of 3, is tzelfde): moeten normaal 2 van afgetrokken worden, word tniet met deze methode (4/7 = 0, 0*2=0)

Het beste dat je kan doen is het weeknr opvragen en op basis van dat gaan werken .

alle gij :ironic:

Rvl

Legacy Member
tot nu toe heb ik de enige werkende oplossing gegeven. Met een while lus werken is hier toch afgeraden aangezien dit veel langer duurt dan gewoon een rekenkundige methode
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan