An error occurred while loading the file. Please try again.
-
Grand Francois authorede9478cdc
package pikelake.environment;
import pikelake.pikes.Pike;
import pikelake.pikes.PikesGroup;
import pikelake.environment.HoraireLeverCoucher;
import fr.cemagref.simaqualife.kernel.processes.AquaNismsGroupProcess;
/**
* Classe de la gestion du temps de la simulation
* @author Guillaume GARBAY
* @version 1.0
*/
public class Time extends AquaNismsGroupProcess<Pike,PikesGroup> {
// Variables representant la date de la simulation
public static enum Season {PRINTEMPS, ETE, AUTOMNE, HIVER};
public static enum Mois {MoisZero, JANVIER, FEVRIER, MARS, AVRIL, MAI, JUIN, JUILLET, AOUT, SEPTEMBRE, OCTOBRE, NOVEMBRE, DECEMBRE};
public static int mois = 1, jour = 0, jourMois = 1, saison = 0, annee = 2012, phaseJour = 0, heure = 0;
public static String PhaseJour;
public static long nbrIter = 0;
/**
* Determine la date de la simulation en fonction du nombre de pas de la simulation
* Calcule l'heure, le jour, la phase du jour, le mois, la saison et l'année
* !! 1 <= jour <= 365 ; 1 <= jourMois <= 30,31 !!
* @param group L'ensemble des individus
* @return /
*/
@Override
public void doProcess (PikesGroup group) {
// Nombre de pas de la simulation
nbrIter = group.getPilot().getCurrentTime();
// Pas de temps Horaire
heure = (int) nbrIter % 24;
jour = (int) Math.ceil((nbrIter+1) / 24.);
// RAZ du nombre de jour par an si l'annee est finie
if (jour>365) {
annee = annee + 1;
jour = jour - 365;
}
// Détermination du jour dans le mois
if (heure == 0)
jourMois = jourMois + 1;
// RAZ jourMois
if ((mois == 1 | mois == 3 | mois == 5 | mois == 7 | mois == 8 | mois == 10 | mois == 12) & jourMois == 32) jourMois = 1;
else if ((mois == 4 | mois == 6 | mois == 9 | mois == 11) & jourMois == 31) jourMois = 1;
else if (mois == 2 & jourMois == 29) jourMois = 1;
// Calcul du mois, de la saison et de la phase du jour
calculMois();
calculSaison();
PhaseJour = HoraireLeverCoucher.phaseJournee[jourMois][mois][heure];
// Affichage de la date complete a chaque pas de temps
//System.out.println(annee + " " + Season.values()[saison] + " " + Mois.values()[mois] + " " + jour + " " + jourMois + " " + heure + " " + PhaseJour);
}
/**
* Détermine le mois en fonction du jour par an
* @param /
* @return /
*/
public void calculMois () {
if (jour <= 31) mois = 1; // Janv