IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Initialiser une durée


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Palsajicoco
    Étudiant
    Inscrit en
    Février 2007
    Messages
    229
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 229
    Par défaut Initialiser une durée
    Salut,

    J'aimerai bien savoir si je pourrai initialiser une durée (temps) en java, genre une variable qui contient 2 minutes.
    Merci.

  2. #2
    Membre éclairé
    Homme Profil pro
    Première S
    Inscrit en
    Juillet 2010
    Messages
    266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France

    Informations professionnelles :
    Activité : Première S

    Informations forums :
    Inscription : Juillet 2010
    Messages : 266
    Par défaut
    Souvent, on marche avec des int, tout simplement ...
    Tu veux initialisé deux minutes, tu initialise int duree = 120
    Après, il existe peut-être des classes spécialisée, mais pour des utilisation simple comme ça, les objets int suffisent ...

  3. #3
    Membre éclairé Avatar de Palsajicoco
    Étudiant
    Inscrit en
    Février 2007
    Messages
    229
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 229
    Par défaut
    Merci pour la réponse,

    Je veux faire un 'while' sur 2 minutes par exemple, je sais pas comment décrémenter le temps pour sortir de la boucle

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    while d'accord, mais par pas de combien, pour en faire quoi, quel est le but?

  5. #5
    Membre éclairé Avatar de Palsajicoco
    Étudiant
    Inscrit en
    Février 2007
    Messages
    229
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 229
    Par défaut
    Ok,

    Je fait un ReminTask qui repete un processus pour un laps de temps donné. et dans le run du ReminTask, je devrai faire ce while pour faire des instructions et sortir si le laps de tmp est depassé!
    voice le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    public class SemaphoreTest {
     
    	// static Date now = new Date();
            static int lapsDeTemp = 5 * 1000;
    	// private static final Log log = LogFactory.getLog(SemaphoreTest.class);
     
    	public static int numEquipment = 50;
     
    	static List<Integer> workers = new LinkedList<Integer>();
    	static List<Integer> processedWorkers = new LinkedList<Integer>();
    	static List<Integer> workersToDo = new LinkedList<Integer>();
     
    	public static void initWorkers() {
    		for (int w = 0; w < numEquipment; w++) {
    			workers.add(w);
    		}
     
    		workersToDo.addAll(workers);
    	}
     
    	static class RemindTask extends TimerTask {
    		int j = 0;
     
    		public RemindTask() {
    			super();
    			initWorkers();
    		}
     
    		// init endDate (schedule)
    		public static Date endDate;
    		public static Date startDate;
     
    		DateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
    		{
    			try {
    				startDate = dateFormat.parse("05/26/2011 13:13:12");
    				endDate = dateFormat.parse("05/29/2011 12:55:12");
    			} catch (ParseException e) {
    				e.printStackTrace();
    			}
    		}
     
    		@Override
    		public void run() {
     
    			if (endDate.after(new Date())) {
     
    				log("Iteration " + j);
    				log("Workers to process during this iteration: " + workersToDo);
     
    				processedWorkers.clear();
     
    				List<Integer> workersToDoCopy = new LinkedList<Integer>(
    						workersToDo);
    				Iterator<Integer> workerIterator = workersToDoCopy.iterator();
     
    				While(lapsDeTemp "n'est pas fini"){
     
    					Integer currentWorker = workerIterator.next();
    					Processor processor = new Processor("THREAD-"
    							+ currentWorker);
    					new Thread(processor).start();
    					workersToDo.remove(currentWorker);
    					processedWorkers.add(currentWorker);
    				}
    				j++;
    			} else {
    				System.exit(0);
    			}
    			log("Workers Done: " + processedWorkers.size() + " -> "
    					+ processedWorkers);
    			log("Workers Left: " + workersToDo.size() + " -> " + workersToDo);
    			workersToDo.addAll(processedWorkers);
    			/*
    			 * for (Integer w : workers) { log.debug(w + " processed " +
    			 * w.getProcessCount()); }
    			 */
     
    		}
    	}
     
    	public static void log(Object o) {
    		System.out.println(o.toString());
    	}
     
    	/**
             * @param args
             */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
     
    		Timer timer;
    		timer = new Timer();
    		timer.schedule(new RemindTask(), 0, lapsDeTemp);
     
    	}
     
    }
    le while lapsDeTemp n'est pas fini est ma condition, et lapsDeTemp c'est le paramètre de bouclage du RemindTask.

    Merci ^^

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    dans ton code, remplace le System.exit(0) par un appel à cancel() et la tâche se terminera sans arrêter la JVM (je suppose que c'est ça que tu demande).

    Si tu veux fixer la date de fin à "maintenant + 15 minutes", c'est

    endDate = new Date(System.currentTimeMillis()+15*60*1000);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB6]Initialiser une variable Static dans un évenement
    Par loverdose dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 20/01/2005, 14h57
  2. [CR] recuperer une durée grace a 2 date
    Par cmgirondins dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 13/01/2005, 07h20
  3. Réponses: 9
    Dernier message: 29/06/2004, 08h40
  4. Formater une durée sous la forme Heure:Minute:Seconde
    Par marsupile dans le forum C++Builder
    Réponses: 2
    Dernier message: 31/01/2004, 23h29
  5. Réponses: 3
    Dernier message: 17/12/2003, 11h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo