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
Version imprimable
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:
1
2 int32 dateDiff = dateDebut.Ticks - dateFin.Ticks;
Code:
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 ....Citation:
dateCfin.Ticks
j'ai adapté comme cela :
il me renvoit en exception surCode:
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: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 mieuxCode:
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:
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:
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:
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 ...