Nombre de jours spécifique d'une date à une autres

Résolu
Utilisateur anonyme - 6 nov. 2007 à 20:02
cs_Bidou Messages postés 5486 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 - 14 nov. 2007 à 17:41
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

Utilisateur anonyme
7 nov. 2007 à 21:23
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
3
cs_Bidou Messages postés 5486 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
14 nov. 2007 à 17:41
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-
3
cs_Bidou Messages postés 5486 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
6 nov. 2007 à 20:21
Hello,
Essayes  ceci:
double days = (dt1 - dt2).TotalDays;

<hr />
-My Blog-
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
7 nov. 2007 à 09:02
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]
0

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

Posez votre question
Utilisateur anonyme
7 nov. 2007 à 20:06
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
0
Rejoignez-nous