/// <summary> /// Permet de trouver une activité dans la journée en fonction d'une heure de début /// </summary> /// <param name="heure">Une heure</param> /// <returns>L'activité se passant à l'heure donnée</returns> public Activite trouverActivite(TimeMartien tm, bool debut) { if (tm != null) { if (!debut && tm.getHeures() == 0 && tm.getMinutes() == 0 && tm.getSecondes() == 0) { tm = new TimeMartien(0, 24, 39, 58); } foreach (Activite a in listeActivites) { if (a.getHeureFin().getHeures() == 0 && a.getHeureFin().getMinutes() == 0 && a.getHeureFin().getSecondes() == 0) { a.setHeureFin(new TimeMartien(0, 24, 39, 59)); } if (a.getHeureDebut() <= tm && a.getHeureFin() > tm) { if (a.getHeureFin().getHeures() == 24 && a.getHeureFin().getMinutes() == 39 && a.getHeureFin().getSecondes() == 59) { a.setHeureFin(new TimeMartien(0, 24, 40, 00)); } return(a); } } } return(null); }
/// <summary> /// Permet de savoir quand deux TimeMartien sont égaux /// </summary> /// <param name="obj">Un TimeMartien</param> /// <returns>Vrai si les deux TImeMartien sont égaux, faux sinon</returns> public override bool Equals(object obj) { TimeMartien t2 = obj as TimeMartien; if (t2 != null) { if (this.getHeures() == t2.getHeures()) { if (this.getMinutes() == t2.getMinutes()) { if (this.getSecondes() == t2.getSecondes()) { return(true); } } } } return(false); }
/// <summary> /// Permet de savoir si une activité se passe dans la période donnée /// </summary> /// <param name="debutActivite">Début de l'activité</param> /// <param name="finActivite">Fin de l'activité</param> /// <param name="heureDebut">Début de la période</param> /// <param name="heureFin">Fin de la période</param> /// <returns>Vrai si l'activité se passe dans la période, faux sinon</returns> public static bool sePasseDansPeriode(TimeMartien debutActivite, TimeMartien finActivite, TimeMartien heureDebut, TimeMartien heureFin) { if (finActivite.getHeures() == 0 && finActivite.getMinutes() == 0 && finActivite.getSecondes() == 0) { finActivite = new TimeMartien(0, 24, 39, 59); } if (heureFin.getHeures() == 0 && heureFin.getMinutes() == 0 && heureFin.getSecondes() == 0) { heureFin = new TimeMartien(0, 24, 39, 59); } bool dINFd = (debutActivite <= heureDebut); bool dSUPd = (debutActivite >= heureDebut); bool fINFf = (finActivite <= heureFin); bool fSUPf = (finActivite >= heureFin); bool dINFf = (debutActivite < heureFin || debutActivite.getJours() < heureFin.getJours()); bool fSUPd = (finActivite > heureDebut || finActivite.getJours() > heureDebut.getJours()); if (dINFd && fSUPf && dINFf && fSUPd) { return(true); } else if (dSUPd && fINFf && dINFf && fSUPd) { return(true); } else if (dSUPd && fSUPf && dINFf && fSUPd) { return(true); } else if (dINFd && fINFf && dINFf && fSUPd) { return(true); } return(false); }