Bonjour,
Je dois générer un interval de date entre une date de debut et de fin et calculer la date suivante.
Quelqu'un peut il m'aider la dessus ...
Merci de votre aide
Bonjour,
Je dois générer un interval de date entre une date de debut et de fin et calculer la date suivante.
Quelqu'un peut il m'aider la dessus ...
Merci de votre aide
tu peux faire ça avec une boucle for, en utilisant un datetime et la méthode AddDays
tu peux utiliser la propriété ticks d'une date pour récupérer un nombre entre 2 dates. Pour infos, il y a 864000000000 ticks par jour.
Je pense que ça peut t'aider!!
heu je ne vois pas trop comment faire la boucle for avec mes dates en faite ...
tu fais pas de boucle for, tu fais :
ça te donnera la différence de temps entre les 2 dates et ensuite t'as juste à ajouter les ticks à la date que tu veux pour calculer la date suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 int32 dateDiff = dateDebut.Ticks - dateFin.Ticks;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 int32 dateSuivante = dateFin.Ticks + dateDiff; //Tu converti en date après DateTime dateSuiv = Convert.ToDateTime(dateSuivante);
j'ai un soucis de CAST visiblement,
renvoi un long ....dateCfin.Ticks
j'ai adapté comme cela :
il me renvoit en exception sur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 long dateDiff = dateCdebut.Ticks - dateCfin.Ticks; long dateSuivante = dateCfin.Ticks + dateDiff; DateTime dateSuiv = Convert.ToDateTime(dateSuivante);
pour une histoire de cast ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part DateTime dateSuiv = Convert.ToDateTime(dateSuivante);
c'est possible, j'ai pas testé dsl^^
en plus je viens de voir une erreur que j'ai faite en écrivant :
Je pense que ça marchera mieux
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 DateTime dateSuiv = dateFin.AddDays(Convert.ToInt(DateDiff/864000000000));
j'avais mal compris ton problème je croyais que tu cherchais tous les jours entre 2 dates
il y 'a plus simple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 DateTime dateDeb = new DateTime(2011, 01, 01); DateTime dateFin = new DateTime(2011, 01, 05); DateTime dateSuivante = dateFin.Add(dateFin.Subtract(dateDeb));
bon coté exception c'est bon coté résultat c'est bizarre ...
mon intervalle est du 26/06 au 30/06
me renvoit : 04/07 .... c'est pas vraiment la date suivante ....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 DateTime dateSuiv = dateCfin.AddDays(Convert.ToInt32(dateDiff / 864000000000));
bs si, ya 4 jours entre le 26/06 et 30/06 et ya 4 jours entre le 30/06 et 04/07
la bonne vieille boucle for:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 for (DateTime date = premierJour; date <= dernierJour; date = date.AddDays(1)) {
Ok .... j'ai compris mais en faite j'ai du mal m'exprimer .... je cherche à avoir toutes les dates entre deux dates .....
je garde cela de coté .... cela pourrait toujours servir
Merci à vous .... c'est bon c'est bien la boucle que je cherchais ...
Partager