Calculer le nombre de jour entre deux dates. [Résolu]

madshell 59 Messages postés dimanche 29 avril 2007Date d'inscription 21 août 2007 Dernière intervention - 13 juin 2007 à 09:39 - Dernière réponse : MorpionMx 3489 Messages postés lundi 16 octobre 2000Date d'inscription 30 octobre 2008 Dernière intervention
- 13 juin 2007 à 12:42
Bonjour,
Je cherche aujourd'hui comment calculer la différence entre deux dates.
Le 11/06/07 (par exemple) et la date actuelle. (DateTime)

J'ai trouvé ceci :
public
intGetDaysBetweenDates
(DateTimed1
, DateTimed2)
{
   return((
TimeSpan)(d2 - d1)).Days;

}

Mais j'aimerais comment savoir faire pour l'integrer au contexte de mon code :

 {
session.send("Là je veux inscrire le nombre de jour");
 }

Merci d'avance.
Afficher la suite 

16 réponses

Répondre au sujet
MorpionMx 3489 Messages postés lundi 16 octobre 2000Date d'inscription 30 octobre 2008 Dernière intervention - 13 juin 2007 à 12:05
+3
Utile
Il manque des espaces ! (DateTime d1 et DateTime d2, là ou j'ai mis en gras)

Mx
MVP C# 
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de MorpionMx
SharpMao 1025 Messages postés mardi 4 février 2003Date d'inscription 7 juin 2010 Dernière intervention - 13 juin 2007 à 10:06
0
Utile
Un simple

session.send(GetDaysBetweenDates(d1,d2).ToString());




devrait faire l'affaire ?

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
Commenter la réponse de SharpMao
madshell 59 Messages postés dimanche 29 avril 2007Date d'inscription 21 août 2007 Dernière intervention - 13 juin 2007 à 10:09
0
Utile
Et par quelle forme je remplace ma D1 ? (Je débute vraiment en c#)
Commenter la réponse de madshell
SharpMao 1025 Messages postés mardi 4 février 2003Date d'inscription 7 juin 2010 Dernière intervention - 13 juin 2007 à 10:42
0
Utile
d1 et d2 sont les deux dates :

DateTime d1 = new DateTime(2000,01,01);
DateTime d2 = DateTime.Today;
session.send(GetDaysBetweenDates(d1,d2).ToString());

Te donneras le nombre de jour entre le 1er janvier 2000 et aujourd'hui.

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
Commenter la réponse de SharpMao
madshell 59 Messages postés dimanche 29 avril 2007Date d'inscription 21 août 2007 Dernière intervention - 13 juin 2007 à 11:06
0
Utile
              {
          DateTime d1 = new DateTime(2007,07,11); // naissance le 11/07/2007
          DateTime d2 = DateTime.Today;
          session.send("J'ai " + GetDaysBetweenDates(d1,d2).ToString() + " jours.");
                }

Me renvoie l'erreur : The name GetDaysBetweenDates does not exist in the class 'My Handler'
Merci d'avance.
Commenter la réponse de madshell
SharpMao 1025 Messages postés mardi 4 février 2003Date d'inscription 7 juin 2010 Dernière intervention - 13 juin 2007 à 11:08
0
Utile
Alors, déclare ta méthode

public static int GetDaysBetweenDates

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
Commenter la réponse de SharpMao
madshell 59 Messages postés dimanche 29 avril 2007Date d'inscription 21 août 2007 Dernière intervention - 13 juin 2007 à 11:15
0
Utile
           // 4.7 - Age du robot.

                              else if
                (
                   msg.IndexOf("takelage...enfinbref") > -1
                )
                
                {
          public static int GetDaysBetweenDate
          DateTime d1 = new DateTime(2007,07,11); // naissance le 11/07/2007
          DateTime d2 = DateTime.Today;
          session.send("J'ai " + GetDaysBetweenDates(d1,d2).ToString() + " jours.");
                }

Euh, je ne vois pas trop où le déclarer car je débute et je n'est jamais déclarer des "méthodes" ...
Ce que j'ai fais là ne marche pas et me donne encore plus d'erreurs.
Je te remercie de ta patience.
Commenter la réponse de madshell
SharpMao 1025 Messages postés mardi 4 février 2003Date d'inscription 7 juin 2010 Dernière intervention - 13 juin 2007 à 11:23
0
Utile
A l'extérieur de ta méthode actuelle, comme tu me l'as montré dans ton premier message

public class Robot
{
   public static int GetDaysBetweenDates(
DateTime
d1
, DateTime
d2)
{
   return
((
TimeSpan
)(d2 - d1)).Days;

}

public taMethode()
{
// Bout de code repris de juste en dessus
                              else if
                (
                   msg.IndexOf("takelage...enfinbref") > -1
                )
                
                {
          public static int GetDaysBetweenDate
          DateTime d1 = new DateTime(2007,07,11); // naissance le 11/07/2007
          DateTime d2 = DateTime.Today;
          session.send("J'ai " + GetDaysBetweenDates(d1,d2).ToString() + " jours.");
                }
}

}

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
Commenter la réponse de SharpMao
madshell 59 Messages postés dimanche 29 avril 2007Date d'inscription 21 août 2007 Dernière intervention - 13 juin 2007 à 11:38
0
Utile
Je m'arrache les cheveux, car je suis parti d'un petit code de base et je ne comprends pas toute la structure, ça fait :



-----------------------------------------------

class MyHandler : IRobotHandler
{

        public void sessionOpened(IRobotSession session, int OpenMode)
        {
        Console.Out.WriteLine(session.getUser().getID()+" arrive...");
        }

        public void sessionClosed(IRobotSession session)
        {
        Console.Out.WriteLine(session.getUser().getID()+" s'en va...");
        }

        public void messageReceived(IRobotSession session, IRobotMessage message)
        {
       
        if
                (
                   msg.IndexOf("takelage...enfinbref") > -1
                )
                
                {
          public static int GetDaysBetweenDate
          DateTime d1 = new DateTime(2007,07,11); // naissance le 11/07/2007
          DateTime d2 = DateTime.Today;
          session.send("J'ai " + GetDaysBetweenDates(d1,d2).ToString() + " jours.");
                }
        }

--------------------------------

Avec un plus grand bout de la sctructure, tu pourrais me redire où je dois déclarer la méthode.
Merci.
Commenter la réponse de madshell
madshell 59 Messages postés dimanche 29 avril 2007Date d'inscription 21 août 2007 Dernière intervention - 13 juin 2007 à 11:41
0
Utile
Pour l'info, je travaille avec les .net Framework 1.1, si ça peut changer quelque chose.
Commenter la réponse de madshell
SharpMao 1025 Messages postés mardi 4 février 2003Date d'inscription 7 juin 2010 Dernière intervention - 13 juin 2007 à 11:43
0
Utile
Une méthode, comme par exemple sessionOpened, sessionClosed, ou encore messageReceived doit être déclaré dans une classe.
Donc tu peux déclarer cette méthode dans la classe MyHandler.

Maintenant que j'ai vu un peu plus de ton code, je vois que tu n'es pas besoin du mot clef static.

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
Commenter la réponse de SharpMao
madshell 59 Messages postés dimanche 29 avril 2007Date d'inscription 21 août 2007 Dernière intervention - 13 juin 2007 à 11:50
0
Utile
Ok.
Par contre je déclare ça au dessus de la mèthode pour la reception des messages !

public int GetDaysBetweenDates(DateTimed1, DateTimed2)
               {
               return((TimeSpan)(d2 - d1)).Days;
               }

Et j'ai une erreur "Identifier Exepted" à la ligne :
public int GetDaysBetweenDates(DateTimed1, DateTimed2)
Commenter la réponse de madshell
MorpionMx 3489 Messages postés lundi 16 octobre 2000Date d'inscription 30 octobre 2008 Dernière intervention - 13 juin 2007 à 11:53
0
Utile
Je pense qu'il va falloir que tu te trouves un bon livre ou un bon tuto !
Petite aide : regarde un peu tes parametres dans la déclaration de ta méthode.

Mx
MVP C# 
Commenter la réponse de MorpionMx
madshell 59 Messages postés dimanche 29 avril 2007Date d'inscription 21 août 2007 Dernière intervention - 13 juin 2007 à 12:01
0
Utile
C'est les paramètres qu'on m'a dit de mettre.
Mais c'est pas une mauvais idée, je vais surement acheter un bouquin, en attendant, j'aimerais bien finir ce petit bout de code.
Commenter la réponse de madshell
madshell 59 Messages postés dimanche 29 avril 2007Date d'inscription 21 août 2007 Dernière intervention - 13 juin 2007 à 12:13
0
Utile
Oups. Merci bien ça fonctionne à merveille, le robot sais dire son âge !
Si vous voulez tester le joujou : robeauf@hotmail.fr (un bot msn pas très gentil)

PS : Dernière petite question, d1 et d2, j'aurais pu l'est remplacé par n'importe quoi d'autre j'imagine ?

Encore merci à vous deux.
Commenter la réponse de madshell
MorpionMx 3489 Messages postés lundi 16 octobre 2000Date d'inscription 30 octobre 2008 Dernière intervention - 13 juin 2007 à 12:42
0
Utile
Ouioui, ce ne sont que des noms pour identifier tes variables

Mx
MVP C# 
Commenter la réponse de MorpionMx

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.