public Journee(int nJour, List<Spationaute> listeSpationaute)
        {
            CompteRendu = "";

            ListActiviteJournee = new List<Activite>();

            Dates h0 = new Dates(nJour, 0, 0);
            Dates h7 = new Dates(nJour, 7, 0);
            Dates h8 = new Dates(nJour, 8, 0);
            Dates h12 = new Dates(nJour, 12, 0);
            Dates h14 = new Dates(nJour, 14, 0);
            Dates h19 = new Dates(nJour, 19, 0);
            Dates h21 = new Dates(nJour, 21, 0);
            Dates h23 = new Dates(nJour, 23, 0);
            Dates h24_40 = new Dates(nJour, 24, 40);

            Coordonnees baseMission = new Coordonnees();
            string sleeping = "Sleeping";
            string eating = "Eating";
            string prive = "Private";

            //on ajoute les activites par defaut de la journee.

            ListActiviteJournee.Add(new Activite(sleeping, h0, h7, baseMission, CompteRendu, listeSpationaute));
            ListActiviteJournee.Add(new Activite(eating, h7, h8, baseMission, CompteRendu, listeSpationaute));
            ListActiviteJournee.Add(new Activite(prive, h8, h12, baseMission, CompteRendu, listeSpationaute));
            ListActiviteJournee.Add(new Activite(eating, h12, h14, baseMission, CompteRendu, listeSpationaute));
            ListActiviteJournee.Add(new Activite(prive, h14, h19, baseMission, CompteRendu, listeSpationaute));
            ListActiviteJournee.Add(new Activite(eating, h19, h21, baseMission, CompteRendu, listeSpationaute));
            ListActiviteJournee.Add(new Activite(prive, h21, h23, baseMission, CompteRendu, listeSpationaute));
            ListActiviteJournee.Add(new Activite(sleeping, h23, h24_40, baseMission, CompteRendu, listeSpationaute));
        }
 public Dates conversionHeureMartienne(DateTime HeureTerre)
 {
     TimeSpan DureeMissionT = HeureTerre - JourDebutMission;
     int DureeMissionMin = (DureeMissionT.Days * 24 + DureeMissionT.Hours) * 60 + DureeMissionT.Minutes;
     int minuteM=DureeMissionMin%(60*24);
     int heureM=DureeMissionMin%60;
     int joursM=DureeMissionMin/(24*60);
     Dates DateM = new Dates(joursM, heureM, minuteM);
     return DateM;
 }
 public Dates ecart(Dates date)
 {
     int date1=(this.Jour*24+this.Heure)*60+this.Minute;
     int date2=(date.Jour*24+date.Heure)*60+date.Minute;
     int ecartMin = Math.Abs(date1 - date2);
     int ecartJour = ecartMin/(60*24);
     int ecartH = (ecartMin/60)%24;
     ecartMin = ecartMin%60;
     Dates ecartTps = new Dates(ecartJour, ecartH, ecartMin);
     return ecartTps;
 }
        public Activite(String nom, Dates hdeb,Dates hfin, Coordonnees lieu, string desc, List<Spationaute> listSpatio)
        {
            this.NomActivite = nom;

            this.HeureDebut = hdeb;
            this.HeureFin = hfin;

            this.Lieu = lieu;
            this.Descritpion = desc;

            this.ListSpationaute = listSpatio;
        }
 private Tuple<Dates, Dates> duree(int heureDeb, int heureFin)
 {
     Dates dateDeb = new Dates(this.NumJour, heureDeb, 0);
     Dates dateFin;
     if (heureFin == 24) dateFin = new Dates(this.NumJour, heureFin, 40);
     else dateFin = new Dates(this.NumJour, heureFin, 0);
     return Tuple.Create(dateDeb, dateFin);
 }
 public List<Activite> selectionPeriode(Dates heureDeb, Dates heureFin)
 {
     List<Activite> lst_periode = new List<Activite>();
     foreach (Activite uneActivite in ListActiviteJournee)
     {
         if (uneActivite.HeureFin.heure > heureDeb.heure || uneActivite.HeureDebut.heure < heureFin.heure)
         {
             lst_periode.Add(uneActivite);
         }
     }
     return lst_periode;
 }
 public void rechercheTexteActivite(string mot, Dates dateDeb, Dates dateFin)
 {
     List<Activite> listPeriode = selectionPeriode(dateDeb, dateFin);
     List<Activite> listResult = listPeriode.FindAll(
     delegate(Activite act)
     {
         return (act.TexteDescritpif.Contains(mot));
     }
     );
 }
 public void rechercheNomActivite(string mot, Dates dateDeb, Dates dateFin)
 {
     List<Activite> listPeriode = selectionPeriode(dateDeb, dateFin);
     List<Activite> listResult = listPeriode.FindAll(
     delegate(Activite act)
     {
         return (act.Nom==mot);
     }
     );
 }
 // hg : point en haut à gauche du rectangle dans lequel on veut chercher
 // bd : point en bas à droite du rectangle dans lequel on veut chercher
 public List<Activite> rechercheLieuExploration(Point hg, Point bd, Dates heureDeb, Dates heureFin)
 {
     List<Activite> listPeriode=selectionPeriode(heureDeb, heureFin);
     List<Activite>  listResult = listPeriode.FindAll(
     delegate(Activite act)
     {
         return (act.Lieu.Position.X>=hg.X && act.Lieu.Position.X<=bd.X && act.Lieu.Position.Y<=hg.Y && act.Lieu.Position.Y>=bd.Y);
     }
     );
     return listResult;
 }
 public List<Activite> rechercheLieuExploration(Point pt, Dates jourdeb, Dates jourfin)
 {
     return rechercheLieuExploration(pt, pt, jourdeb.heure, jourfin.heure);
 }
 public List<Activite> rechercheLieuExploration(Point hg, Point bd, Dates jourdeb, Dates jourfin)
 {
     return rechercheLieuExploration(hg, bd, jourdeb.heure, jourfin.heure);
 }