Division entiere

cs_lilj Messages postés 204 Date d'inscription dimanche 13 décembre 2009 Statut Membre Dernière intervention 1 avril 2012 - 1 mars 2010 à 16:26
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 1 mars 2010 à 22:38
Salut je voulais savoir comment faire une division entiere pour calculer le nombre de semaine par raport a la difference entre 2dates

Youhou !!

5 réponses

cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
1 mars 2010 à 16:46
Salut
Une division ? Laquelle ? Tu aurais pu nous montrer comment tu pratiques si tu voulais une solution !

En .Net, c'est très simple :
La fonction DateDiff te fournit l'info, suffit de bien paramétrer :
DateDiff(DateInterval.Weekday, maDate1, maDate2, FirstDayOfWeek.Monday, FirstWeekOfYear.FirstFourDays)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_lilj Messages postés 204 Date d'inscription dimanche 13 décembre 2009 Statut Membre Dernière intervention 1 avril 2012 5
1 mars 2010 à 17:10
Merci je sai deja pour datediff mais cette fonction renvoi un nombre de jour et je voudrais diviser ce nbre de jours par 7 pour obtenir le nombre de semaine.
Exemple: 07/06/2010 date1 22/06/2010 date2
et je voudrais obtenir ici 3 semaines car du 7 au 21 cela fait 2 semaines mais comme il y a le 22 cela doit faire 3 semaines
soi datediff renvoi 15 15 div 7 = 3

vois-tu ce que je veux dire ?
0
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
1 mars 2010 à 19:04
Tu n'as pas lu ce que je t'ai écrit.
Dans la ligne de programme, la fonction renvoie directement le nombre de semaines.

Sinon, regarde la fonction Mod : Elle fournit le reste d'une division.
Donc, si tu as 15 jours à diviser en 7, le reste sera de 1.
Si tu retranches 1 à 15, ça donne 14 qui sera divisible, sans virgule.
Debug.Print((15 - (15 Mod 7)) / 7)

Ou bien encore, prendre la partie entière d'un chiffre, sans arrondir, avec Fix :
Debug.Print(Fix(15 / 7))

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
1 mars 2010 à 19:07
PS : Si tu as une machine qui te renvoie 3 quand tu fais 15 / 7, change-la tout de suite !
Au pire, elle devrait te donner 2

Ca rejoint ma première remarque : Si on ne sais pas ce que tu as écrit, difficile de te dire où tu as fait une erreur ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 228
1 mars 2010 à 22:38
Je crois tout simplement qu'il y a là une étrange manière de confondre le nombre de semaines avec celui des tranches de 7 jours, en comptant comme tranche toute tranche commencée ...


____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
0