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

Résolu
Fengalt Messages postés 7 Date d'inscription mardi 11 décembre 2007 Statut Membre Dernière intervention 6 mai 2009 - 28 avril 2009 à 11:05
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 - 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.

9 réponses

cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 59
28 avril 2009 à 12:20
Seb'> voui, ou regarder si le dernier bit est à 1 ou 0? C'est bcp bcp plus rapide :)

<hr />
-Blog-
-Site Perso-
3
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 38
28 avril 2009 à 11:28
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
0
Fengalt Messages postés 7 Date d'inscription mardi 11 décembre 2007 Statut Membre Dernière intervention 6 mai 2009
28 avril 2009 à 11:33
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.
0
Fengalt Messages postés 7 Date d'inscription mardi 11 décembre 2007 Statut Membre Dernière intervention 6 mai 2009
28 avril 2009 à 11:42
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;
}
}
0

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

Posez votre question
Fengalt Messages postés 7 Date d'inscription mardi 11 décembre 2007 Statut Membre Dernière intervention 6 mai 2009
28 avril 2009 à 11:48
Mince, toujours pas très lisible, désolé.
0
Fengalt Messages postés 7 Date d'inscription mardi 11 décembre 2007 Statut Membre Dernière intervention 6 mai 2009
28 avril 2009 à 12:25
Merci à vous pour votre aide, je vais plancher sur cette solution.

Merci encore pour votre activité sur le forum.
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 38
28 avril 2009 à 12:27
Bidou... c'est pas faux :)

un exemple de code ?
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 59
28 avril 2009 à 12:40
La question s'adresse à moi?
Si oui:

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

<hr />
-Blog-
-Site Perso-
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 38
28 avril 2009 à 12:41
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 ;)
0