Transformer un jour du mois en DWORD

myocean Messages postés 39 Date d'inscription vendredi 24 janvier 2003 Statut Membre Dernière intervention 12 janvier 2006 - 21 janv. 2004 à 16:08
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 - 22 janv. 2004 à 21:23
Dans le cas de la structure AT_INFO
la variable DaysOfMonth est au format DWORD et elle recoit comme paramêtre des bit où le bit 0 est le 1er du mois (valeur 1), bit 1 : 2 du mois (valeur 2) .. (4, 8, 16)
sachant que si je veus le 1er et le 3 jour du mois il faut que j'additionne 1 + 4

Je ne sais pas comment convertir rapidement par exemple 21
sans passer par un tableau

autre cas je voudrai faire le chemin inverse mais comment

C'est pas très clair je sais mais bon

4 réponses

myocean Messages postés 39 Date d'inscription vendredi 24 janvier 2003 Statut Membre Dernière intervention 12 janvier 2006
21 janv. 2004 à 16:34
Sinon je sais que la formule pour calculer une date n est 2^(n-1)
0
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
21 janv. 2004 à 19:27
pour calculer 2^(n-1) il faut faire un décalage de bit :
DWORD val = 2<<(n-1);

exemple pour 1er et 3ème jour
DWORD val = 2<<0 | 2<<2

pour ajouter un jour n à val
val |= 2<<(n-1);
0
myocean Messages postés 39 Date d'inscription vendredi 24 janvier 2003 Statut Membre Dernière intervention 12 janvier 2006
22 janv. 2004 à 17:31
Pas sûr car j'obtiens :
1er jour : 2<<(1-1) -> 2 au lieu de 1
2ème jour : 2<<(2-1) -> 4 au lieu de 2
etc ...

je ne peux mettre n-2 car dans le cas du premier jour le résultat serai 0
0
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
22 janv. 2004 à 21:23
oui excuse, il faut mettre 1<<(n-1)
0
Rejoignez-nous