Allez... casse-tete !

Le
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
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MiF
Le #13078691
"B. Neve" 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)
Gilles G.
Le #13078681
In article 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 ;)
Geno
Le #13078661
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" 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




Publicité
Poster une réponse
Anonyme