Petite devinette amusante avec les dates.... [Résolu]

cs_emmanuel9 903 Messages postés mercredi 23 février 2005Date d'inscription 16 juin 2010 Dernière intervention - 28 oct. 2005 à 16:58 - Dernière réponse : cs_emmanuel9 903 Messages postés mercredi 23 février 2005Date d'inscription 16 juin 2010 Dernière intervention
- 28 oct. 2005 à 18:39
Bonjour à tous,



En faite mon problème est que je veux faire une fonction qui prend en
paramètre un nombre de 1 à 7. 1 lundi, 2 mardi, 3 = mercredi
etc.....



Et si mettons le nombre est 2 donc mardi, la fonction doit renvoyer une
chaine correspondant à la période sur une semaine correspondant au
jours en cours.



Exemple : (on est vendredi donc 5)



ma fonction(2)

{

return "25/10/2005 _01/11/2005"

}



on est vendredi donc la fonction ma renvoi une chaine qui est la
période du mardi d'avant jusqu'au mardi qui vient. C'est à se demander
si c'est amusant comme devinette en plus



Par avance, merci.
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
zebobo5 273 Messages postés dimanche 5 octobre 2003Date d'inscription 6 février 2009 Dernière intervention - 28 oct. 2005 à 18:00
3
Merci
public string DateBizarre(int jour)

{

int d = ((int)((DayOfWeek)Enum.GetValues(typeof(DayOfWeek)).GetValue(jour))) - ((int)DateTime.Now.DayOfWeek);

if (d > 0) d -= 7;

return DateTime.Now.AddDays(d).ToShortDateString() + " " + DateTime.Now.AddDays(d + 7).ToShortDateString();

}


Ca te vas?


<hr>ZeBobo5
N'oubliez pas de cloturer votre post.

Merci zebobo5 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 125 internautes ce mois-ci

Commenter la réponse de zebobo5
Meilleure réponse
zebobo5 273 Messages postés dimanche 5 octobre 2003Date d'inscription 6 février 2009 Dernière intervention - 28 oct. 2005 à 18:02
3
Merci
Oups petit pb pour le dimanche, ajouter , avant le "int d..."

if (jour 7) jour 0;
<hr>ZeBobo5
N'oubliez pas de cloturer votre post.

Merci zebobo5 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 125 internautes ce mois-ci

Commenter la réponse de zebobo5
Meilleure réponse
zebobo5 273 Messages postés dimanche 5 octobre 2003Date d'inscription 6 février 2009 Dernière intervention - 28 oct. 2005 à 18:18
3
Merci
tu as raison, c kan mm plus rapide ke l'enum , mais il faut dans ce cas enlever un jour car le dimanche correspond à 0, donc :



int d = jour - ((int)DateTime.Now.DayOfWeek) - 1;


<hr>ZeBobo5
N'oubliez pas de cloturer votre post.

Merci zebobo5 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 125 internautes ce mois-ci

Commenter la réponse de zebobo5
Meilleure réponse
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 28 oct. 2005 à 18:26
3
Merci
Evitez d'appeler plusieurs fois DateTime.Now : imaginez juste le jour où la date changera durant l'execution (bon ok, il ne faut vraiment pas avoir de bol mais...)

Donc je verrais plutôt ça...
public string DateBizarre(int jour)
{
DateTime currentDate = DateTime.Now.Date; if (jour 7) jour 0;
int d = ((int)((DayOfWeek)Enum.GetValues(typeof(DayOfWeek)).GetValue(jour))) - ((int)currentDate .DayOfWeek);
if (d > 0) d -= 7;
return currentDate .AddDays(d).ToShortDateString() + " " + currentDate .AddDays(d + 7).ToShortDateString();
}

/*
coq
MVP Visual C#
*/

Merci cs_coq 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 125 internautes ce mois-ci

Commenter la réponse de cs_coq
cs_emmanuel9 903 Messages postés mercredi 23 février 2005Date d'inscription 16 juin 2010 Dernière intervention - 28 oct. 2005 à 18:14
0
Merci
Merci bcp de ta réponse,



J'ai rien compris à cette ligne :



int d = ((int)((DayOfWeek)Enum.GetValues(typeof(DayOfWeek)).GetValue(jour))) - ((int)DateTime.Now.DayOfWeek);



mais est ce qu'on peut la remplacer par celle ci ? :



int d = jour - ((int)DateTime::Now.DayOfWeek);
Commenter la réponse de cs_emmanuel9
cs_emmanuel9 903 Messages postés mercredi 23 février 2005Date d'inscription 16 juin 2010 Dernière intervention - 28 oct. 2005 à 18:39
0
Merci
merci de vos réponses
Commenter la réponse de cs_emmanuel9

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.