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
Dernière intervention
6 mai 2009
- 28 avril 2009 à 11:05 - Dernière réponse : sebmafate
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
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.
Afficher la suite 

Votre réponse

9 réponses

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

<hr />
-Blog-
-Site Perso-

Merci cs_Bidou 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de cs_Bidou
sebmafate
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
- 28 avril 2009 à 11:28
0
Merci
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
Messages postés
7
Date d'inscription
mardi 11 décembre 2007
Dernière intervention
6 mai 2009
- 28 avril 2009 à 11:33
0
Merci
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
Messages postés
7
Date d'inscription
mardi 11 décembre 2007
Dernière intervention
6 mai 2009
- 28 avril 2009 à 11:42
0
Merci
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
Messages postés
7
Date d'inscription
mardi 11 décembre 2007
Dernière intervention
6 mai 2009
- 28 avril 2009 à 11:48
0
Merci
Mince, toujours pas très lisible, désolé.
Commenter la réponse de Fengalt
Fengalt
Messages postés
7
Date d'inscription
mardi 11 décembre 2007
Dernière intervention
6 mai 2009
- 28 avril 2009 à 12:25
0
Merci
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
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
- 28 avril 2009 à 12:27
0
Merci
Bidou... c'est pas faux :)

un exemple de code ?
Commenter la réponse de sebmafate
cs_Bidou
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
- 28 avril 2009 à 12:40
0
Merci
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
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
- 28 avril 2009 à 12:41
0
Merci
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.