Récupérer les jours pair et impair dans une année [Résolu]

Fengalt 7 Messages postés mardi 11 décembre 2007Date d'inscription 6 mai 2009 Dernière intervention - 28 avril 2009 à 11:05 - Dernière réponse : sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscriptionModérateurStatut 14 février 2014 Dernière intervention
- 28 avril 2009 à 12:41
Hello,

Je cherche une solution pour récupérer les lundis d'une semaine paire et les mardis d'une semaine impaire.
Une fois trouvé, tout part dans une listview (ceci est déjà fait, mais j'ai tout les lundi et mardis d'une année qui s'y mettent).
Je tourne en rond depuis quelques heures sur ce problème. Si quelqu'un à une piste.

J'ai tenté des boucles en vérifiant si une semaine est bien paire ou impaire, mais j'ai dû me planter quelques part. J'ai aussi tenté de supprimer une ligne sur deux pour ne garder que les bonnes, mais tout cela n'est pas très fiable. Si on peut ne récupérer uniquement les lundis d'une semaine paire et les mardis d'une semaine impaire, et que tout cela soit pérpétuel, cela m'aiderait beaucoup.

Merci.
Afficher la suite 

9 réponses

Répondre au sujet
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscriptionModérateurStatut 20 juin 2013 Dernière intervention - 28 avril 2009 à 12:20
+3
Utile
Seb'> voui, ou regarder si le dernier bit est à 1 ou 0? C'est bcp bcp plus rapide :)

<hr />
-Blog-
-Site Perso-
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Bidou
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscriptionModérateurStatut 14 février 2014 Dernière intervention - 28 avril 2009 à 11:28
0
Utile
pour vérifier qu'un nombre est pair, il suffit de regarder le résultat du modulo 2.

si pair : nombre % 2 = 0
si impair : nombre % 2 = 1
Commenter la réponse de sebmafate
Fengalt 7 Messages postés mardi 11 décembre 2007Date d'inscription 6 mai 2009 Dernière intervention - 28 avril 2009 à 11:33
0
Utile
Oui, j'ai bien fait tout cela, je met un peu de code :

Une fonction :

if ((Intsemaine % 2) == 0)
{
return true;
}
else
{
return false;
}



Que je récupère dans ma page (ceci est un des nombreux essai) :

DateTime débutDate;
DateTime finDate;
finDate = DateTime.Now.AddYears(1);

CultureInfo ci = new CultureInfo("fr-FR");
DateTime Dtsemaine = DateTime.Now;
int Intsemaine = ci.Calendar.GetWeekOfYear(Dtsemaine, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);

débutDate = DateTime.Today;

Semaine semainepair = new Semaine();

if (checkBox_Toute_Annee_Lundi_Tab1.Checked == true)
{
for (débutDate.AddMilliseconds(1); débutDate < finDate; débutDate = débutDate.AddDays(1))
{
if (semainepair.PairImpair(Intsemaine))
{
if (débutDate.DayOfWeek == DayOfWeek.Monday)
{
listView_Reca_Resa.Items.Add(débutDate.ToString("dddd dd MMMM yyyy"));
}
}
Intsemaine = Intsemaine + 1;
}
}



Le problème est que j'ai tout le temps les 52( ou 53) lundis de l'année qui s'y mettent.
Commenter la réponse de Fengalt
Fengalt 7 Messages postés mardi 11 décembre 2007Date d'inscription 6 mai 2009 Dernière intervention - 28 avril 2009 à 11:42
0
Utile
Mince, pas très lisible tout mon code. Je le remet en forme.

DateTime débutDate;
DateTime finDate;
finDate = DateTime.Now.AddYears(1);

CultureInfo ci = new CultureInfo("fr-FR");
DateTime Dtsemaine = DateTime.Now;
int Intsemaine = ci.Calendar.GetWeekOfYear(Dtsemaine, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);

débutDate = DateTime.Today;
Semaine semainepair = new Semaine();

if (checkBox_Toute_Annee_Lundi_Tab1.Checked == true)
{
for (débutDate.AddMilliseconds(1); débutDate < finDate; débutDate = débutDate.AddDays(1))
{
if (semainepair.PairImpair(Intsemaine))
{
if (débutDate.DayOfWeek == DayOfWeek.Monday)
{
listView_Reca_Resa.Items.Add(débutDate.ToString("dddd dd MMMM yyyy"));
}
}
Intsemaine = Intsemaine + 1;
}
}
Commenter la réponse de Fengalt
Fengalt 7 Messages postés mardi 11 décembre 2007Date d'inscription 6 mai 2009 Dernière intervention - 28 avril 2009 à 11:48
0
Utile
Mince, toujours pas très lisible, désolé.
Commenter la réponse de Fengalt
Fengalt 7 Messages postés mardi 11 décembre 2007Date d'inscription 6 mai 2009 Dernière intervention - 28 avril 2009 à 12:25
0
Utile
Merci à vous pour votre aide, je vais plancher sur cette solution.

Merci encore pour votre activité sur le forum.
Commenter la réponse de Fengalt
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscriptionModérateurStatut 14 février 2014 Dernière intervention - 28 avril 2009 à 12:27
0
Utile
Bidou... c'est pas faux :)

un exemple de code ?
Commenter la réponse de sebmafate
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscriptionModérateurStatut 20 juin 2013 Dernière intervention - 28 avril 2009 à 12:40
0
Utile
La question s'adresse à moi?
Si oui:

        public static bool IsEven(int n)
        {
            return (n & 1) == 0;
        }

<hr />
-Blog-
-Site Perso-
Commenter la réponse de cs_Bidou
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscriptionModérateurStatut 14 février 2014 Dernière intervention - 28 avril 2009 à 12:41
0
Utile
bah oui... tu lances l'idée du byte mais tu ne mets pas de code :p

merci... et en effet, c'est bien plus rapide ;)
Commenter la réponse de sebmafate

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.