Nombre de jours spécifique d'une date à une autres [Résolu]

Signaler
-
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
-
Bonjour, mon problème en fait est que j'aimerais savoir combien y a
t-il (pour donner un exmple) de lundi depuis le 10.01.2007 au
23.06.2007.


Faudrait que ça marche pour n'importe quel jours, pour n'importe quelle date de début et n'importe quelle date de fin.


Quelqu'un saurait-il comment faire ????


Quelqu'un aurait-il la solution ???


Combien de ....... entre le ....... au .........


Ce serait un magnifique snippet ça. Enfin si une fonction existe déjà elle est la bien venue, bien entendue


Merci d'avance pour toutes vos suggestions.

On a rien sans rien

5 réponses


http://www.csharpfr.com/codes/RETOURNE-NOMBRE-JOURS-DATE-AUTRE_44640.aspx


Ben voilà ce que ça donne...


Dite si ça joue

On a rien sans rien
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
54
Source pas conservée (pas optimisée et ferait plutôt office de snippet).
Voici le code que je propose (une simplification du tien) :

public static int NumberOfDaysX(DayOfWeek dayToSearch, DateTime startDate, DateTime endDate)
        {
            int wholeDays = (int)((endDate - startDate).TotalDays / 7);
            if (wholeDays > 0)
            {
                if ((dayToSearch >= startDate.DayOfWeek && dayToSearch <= endDate.DayOfWeek) ||
                    (dayToSearch <= startDate.DayOfWeek && dayToSearch >= endDate.DayOfWeek))
                    wholeDays++;
            }
            else
            {
                if (startDate == endDate) wholeDays++;
                else
                {
                      DayOfWeek first, second;
                      if (startDate.DayOfWeek > endDate.DayOfWeek)
                      {
                          first = startDate.DayOfWeek;
                          second = endDate.DayOfWeek;
                      }
                      else
                      {
                          first = endDate.DayOfWeek;
                          second = startDate.DayOfWeek;
                      }
                      if (dayToSearch >= first || dayToSearch <= second) wholeDays++;
                }
            }
            return wholeDays;
        }

<hr />
-My Blog-
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
54
Hello,
Essayes  ceci:
double days = (dt1 - dt2).TotalDays;

<hr />
-My Blog-
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
euh bidou... le nombre de lundi... pas de jours

double weeks = (dt1 - dt2).TotalDays / 7; // nombres de semaines

Normalement, tu devrais avoir le nombre de lundi compris entre ces 2 bornes... à un jour près !

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]

Ha ouai pas mal. J'avais pas pensé lol. C'est vrai que si je sais
combien y a de semaine, je sais aussi combien y a de lundi ou mardi ou
...

Tu crois que c'est precis comme calcul ???

Le resultat sera un double. Que faire des chiffres après la virgule ???

Exemple : weeks = 10.2 ??? 0.2 semaines ca fait combien de jours ???

Tu vois si dt1 est un Mercredi et dt2 un Vendredi. Difficile de trouver le nombre de mardi.

Enfin je vais essayer et on verra..

Merci beaucoup de répondre aussi vite

On a rien sans rien