Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Allez... casse-tete !

3 réponses
Avatar
B. Neve
Petit casse-tete ?

Comment SANS boucle mais par opérations mathématiques arriver à connaître le
nombre de samedis ou de dimanches ou les deux entre deux dates.

Variable 1 = 20040502
Variable 2 = 20040510


Nbre de dimanches ?
Nbre de samedis ?



Amusant non ? Je répète... Pas de boucle, ce serait évidemment trop
simpliste...

Je n'ai évidemment pas la réponse puisque je vous le pose...



Benoit

3 réponses

Avatar
MiF
"B. Neve" a écrit dans le message de
news:409ac003$0$22820$
Petit casse-tete ?

Comment SANS boucle mais par opérations mathématiques arriver à connaître


le
nombre de samedis ou de dimanches ou les deux entre deux dates.

Variable 1 = 20040502
Variable 2 = 20040510


Nbre de dimanches ?
Nbre de samedis ?



Amusant non ? Je répète... Pas de boucle, ce serait évidemment trop
simpliste...

Je n'ai évidemment pas la réponse puisque je vous le pose...



Benoit





Le code ci-dessous à l'air de fonctionner. On comptabilise le nombre de
semaines qui sépare les deux dates. Ensuite selon la position de chaque
journée dans la 1ère et dernière semaine on incrémente ou décrémente le
nombre de samedis.

J'avoue ne pas avoir passé énormément de temps à tester, il est possible que
certaines exceptions ne soient pas gérées...
Le cas où les deux dates ne sont pas dans la même année n'est pas géré (mais
ce n'est pas compliqué, il faut calculer la vairable NbSem en tenant compte
du changement d'année).
-----------------------

date1 est chaîne = "20040502"
date2 est chaîne = "20040510"

numjour1 est entier = EntierVersJour(DateVersEntier(date1))
numjour2 est entier = EntierVersJour(DateVersEntier(date2))

nbsem est entier DateVersNumeroDeSemaine(date2)-DateVersNumeroDeSemaine(date1)
NbSamedi est entier = nbsem

SI numjour1<=6 ALORS NbSamedi++
SI numjour2<=6 ALORS NbSamedi--

Info(NbSamedi)
Avatar
Gilles G.
In article <409ac003$0$22820$,
says...
Petit casse-tete ?

Comment SANS boucle mais par opérations mathématiques arriver à connaître le
nombre de samedis ou de dimanches ou les deux entre deux dates.
Variable 1 = 20040502
Variable 2 = 20040510
Nbre de dimanches ?
Nbre de samedis ?
Amusant non ? Je répète... Pas de boucle, ce serait évidemment trop
simpliste...
Je n'ai évidemment pas la réponse puisque je vous le pose...



Allez au pif,

un date différence entre les deux dates
tu divises par 7
tu prends la partie entière
ca te donne le nombre de semaine complètes écoulées.

Ensuite tu vérifies si la date de départ est un samedi. ou un dimanche
pour ajouter ou retirer 1 au nombre de semaines, et idem pour la date de
fin.

Je ne suis pas sûr à 100% de l'exactiture, ca sort d'un cerveau au
réveil ;-) Mais à partir de ça, tu devrais t'en sortir sans boucle ;)
Avatar
Geno
semdep=numerodesemaine("20040502") //19
semfin=numerodesemaine("20040510") //20

diff=semfin-semdep //1 dimanche
si jour(20040502)=dimanche alors diff++
si jour(20040510)=dimanche alors diff++


"B. Neve" a écrit dans le message de news:
409ac003$0$22820$
Petit casse-tete ?

Comment SANS boucle mais par opérations mathématiques arriver à connaître


le
nombre de samedis ou de dimanches ou les deux entre deux dates.

Variable 1 = 20040502
Variable 2 = 20040510


Nbre de dimanches ?
Nbre de samedis ?



Amusant non ? Je répète... Pas de boucle, ce serait évidemment trop
simpliste...

Je n'ai évidemment pas la réponse puisque je vous le pose...



Benoit