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

JavaScript Discussion :

recupérer la date Min d'une tache pour chaque employé


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 12
    Points : 3
    Points
    3
    Par défaut
    Bonjour à tous


    Je suis débutant sur Javascript.

    J'ai créée 3 tables :
    - Taches (pour effectuer des tâches à faire avec ses dates de début et fin, le nom de l'employee, le client , sa catégorie)

    - Employés
    - Clients

    En code source Javascript, je voudrais :"La date Min de début de toutes les taches pour chaque employe".

    Quels fonction dois-je utiliser sachant que j'aurai des boucles à faire?
    Je sais qu'elle est simple mais j'ai besoin d'avoir un appui.

    Mes date se compose en jour, mois, année, heure,min

    Merci

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Salut,

    Il suffit de créer des variables avec tes dates :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var date1 = new Date(annee, mois - 1, jour, heure, minute);
    attention, les mois commencent à 0, d'où le "mois - 1"
    Et ensuite, il suffit de les comparer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dateMin = date1 < date2 ? date1 : date2;
    Autre solution, mais plus complexe, tu insères tes dates dans un tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var tabDate = [];
    tabDate.push(new Date(annee, mois - 1, jour, heure, minute));
    puis tu tries le tout :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    tabDate.sort(function(a, b){
        return a == b ? 0 : a < b ? -1 : 1;
    }

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 12
    Points : 3
    Points
    3
    Par défaut réponse à Bovino
    Tout d'abord je te remercie pour ta solution qui m'oriente vers la solution complète....

    Pour justement convertir les dates, les trier et les comparer., j'ai besoin de parcourir toutes les tâches.
    Donc pour chaque tâche, j'ai besoin de récupérer ces dates pour chaque employés ainsi je pourrais trier tous les employés
    et enfin récupérer les dates Min de chaque employés.

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Il te suffit de faire une boucle (deux en fait) sur chaque date de chaque employé...

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 12
    Points : 3
    Points
    3
    Par défaut suite... affichr la date min des taches d'un employé.
    j'ai l'impression de tenter plein de chose en vain.

    Mon algorithme est cohérent mais le retranscrire dans un outil JS me pose problème.

    HELP, PLEASE.

    Merci

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Sans voir de code (HTML généré), la seule aide possible est théorique...

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 12
    Points : 3
    Points
    3
    Par défaut
    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
    function NbreTotalEmployee()
    {
    var year    = 0;
    var month   = 0;
    var day     = 0;
    var day     = 0;
    var hours   = 0;
    var minutes = 0;
    var seconds = 0;
     
     
     
    var tabDate = [];
    tabDate.push(new Date(year, month - 1, day, hours, minutes, seconds));
     
    tabDate.sort(function(a, b){
        return a == b ? 0 : a < b ? -1 : 1;
    })
     
    // ------> je parcours toutes mes tâches (condition : jusqu'a ce que je parcours toutes mes tâches)
    // -------> pour chaque tâche je conserve la dateMin de chaque employé    
    // --------> Je finis par faire un trie (car un employé peut avoir plusieurs dateMin car plusieurs tâches
    // ----------> Finalement j'affiche le résultats de la tache avec la DateMin (celle la plus tôt)
    }
    JE te mets en ligne ce que tu m'as donné

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function Resultats()
    {
    	var taskdata = dataprovider.getSize()
     
     
        var date1 = new Date(annee, mois - 1, jour, heure, minute);  // on crée des variables avec les dates
    	                                                             // attention, les mois commencent à 0, d'où le "mois - 1"
     
    	dateMin = date1 < date2 ? date1 : date2;                     // on les comparer

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 101
    Points : 123
    Points
    123
    Par défaut


    Citation Envoyé par otello Voir le message
    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
    function NbreTotalEmployee()
    {
    var year    = 0;
    var month   = 0;
    var day     = 0;
    var day     = 0;
    var hours   = 0;
    var minutes = 0;
    var seconds = 0;
     
     
     
    var tabDate = [];
    tabDate.push(new Date(year, month - 1, day, hours, minutes, seconds));
     
    tabDate.sort(function(a, b){
        return a == b ? 0 : a < b ? -1 : 1;
    })
     
    // ------> je parcours toutes mes tâches (condition : jusqu'a ce que je parcours toutes mes tâches)
    // -------> pour chaque tâche je conserve la dateMin de chaque employé    
    // --------> Je finis par faire un trie (car un employé peut avoir plusieurs dateMin car plusieurs tâches
    // ----------> Finalement j'affiche le résultats de la tache avec la DateMin (celle la plus tôt)
    }
    Citation Envoyé par otello Voir le message
    JE te mets en ligne ce que tu m'as donné

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function Resultats()
    {
    	var taskdata = dataprovider.getSize()
     
     
        var date1 = new Date(annee, mois - 1, jour, heure, minute);  // on crée des variables avec les dates
    	                                                             // attention, les mois commencent à 0, d'où le "mois - 1"
     
    	dateMin = date1 < date2 ? date1 : date2;                     // on les comparer
    j'ai l'impression qu'il manque un morceau de ta fonction Resultats

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 12
    Points : 3
    Points
    3
    Par défaut
    oui désolé

    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
     
    function NbreTotalEmployee()
    {
    var year = 0;
    var month = 0;
    var day = 0;
    var day = 0;
    var hours = 0;
    var minutes = 0;
    var seconds = 0;
     
     
     
    var tabDate = [];
    tabDate.push(new Date(year, month - 1, day, hours, minutes, seconds));
     
    tabDate.sort(function(a, b){
    return a == b ? 0 : a < b ? -1 : 1;
    })
     
    // ------> je parcours toutes mes tâches (condition : jusqu'a ce que je parcours toutes mes tâches)
    // -------> pour chaque tâche je conserve la dateMin de chaque employé
    // --------> Je finis par faire un trie (car un employé peut avoir plusieurs dateMin car plusieurs tâches
    // ----------> Finalement j'affiche le résultats de la tache avec la DateMin (celle la plus tôt)
    }

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 12
    Points : 3
    Points
    3
    Par défaut
    voici la solution en utilisant mes formulaires : Forms.XXXXX

    En avez vous une en utilisant des tableaux....

    Merci

    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
     
    function MinTaskTime()
    {
     
     
    	var record=forms.employee.foundset.getSize();       
    	var euu;
    	for(var j=1;j<=record;j++){	
    		forms.employee.foundset.setSelectedIndex(j);
    		var employ=forms.employee.employeename;
    		euu=forms.employee.employeeuuid.toString();
     
    		var taskBegin= new Date();
    		var taskEnd=new Date(0);
    		var taskGap=0;
    		var longest=0;
    		var shortest=100000;
    		var sum=0;
    		var sumsqr=0;
    		var n=0;
    		var size=forms.task.foundset.getSize();
     
    		for(var i=1;i<=size;i++){
    			forms.task.foundset.setSelectedIndex(i);
     
    			if(forms.task.foundset.employeeuuid.toString()==euu){
    				n=n+1;		
    				if (forms.task.taskbegin<taskBegin){
    					taskBegin=forms.task.taskbegin;
    				}
    				if (forms.task.taskend>taskEnd){
    					taskEnd=forms.task.taskend;
    				}
    				taskGap=(forms.task.taskend-forms.task.taskbegin)/1000;
    				if(taskGap>longest) longest=taskGap;
    				if(taskGap<shortest) shortest=taskGap;
    				sum=sum+taskGap;
    				sumsqr=sumsqr+taskGap*taskGap;
    			}
    		}
     
    		var dev=(sumsqr-(sum*sum/n))/n;
    		dev=Math.sqrt(dev);
     
    		plugins.dialogs.showInfoDialog('Hello',employ + "\n" + taskBegin + "\n" + taskEnd,'OK');
    		plugins.dialogs.showInfoDialog('Hello',employ + '\n' + longest + "\n" + shortest + "\n" + sum + "\n" + dev,'OK');
    	}
    }

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 12
    Points : 3
    Points
    3
    Par défaut suite...
    Bonjour

    Quelquun peut il m'aider à afficher mes données en utilisant les tableaux sou J.S.
    Je sais que sous Javascript, il existe plusieurs sortes de tableaux...monodimentionnelle, multi dimentionnelle, associatif.

    Je ne sais pas quel tableau utilisé.

    sachant que je dois récupérer pour toutes ls tâches d'une entreprise la date Min pour chaque employé et la date max.
    Merci

  12. #12
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Rends toi bien compte que l'on ne pourra pas t'aider puisque personne ne peut deviner d'où sortent les dates que tu veux trier !
    Sans plus d'informations, personne ne pourra t'aider !

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 12
    Points : 3
    Points
    3
    Par défaut
    désolé de ne pas être aussi précis.

    Mes dates proviennent des formulaires (forms) que je saisie .

    Pour chaque tâche (TaskID) :
    - j'ai 1 employé (employe_ID)
    -1 date de début de tâche nommé "TaskBegin",
    -1 date de fin de tâche nommé "TaskEnd",
    tous ces champs sont saisies et stockés ds la base.

    J'ai n tâches à parcourir. dans ces n tâches je récupères la dateMin de chaque employé.
    Un employé peut avoir plusieurs tâches, on prend la dateMin des ses tâches, son nom.

    N'hésitez pas à me poser des questions.

    Pour le tableau, je pensais faire un tableau "Task" simple avec 3 colonnes :
    - Employee_ID
    - TaskBegin
    - TaskEnd

    Merci

Discussions similaires

  1. [AC-2007] Calcul sur une date et obtenir des valeurs pour chaque date obtenue
    Par missalias dans le forum Modélisation
    Réponses: 38
    Dernier message: 07/04/2014, 09h22
  2. [AC-2010] Recupération nombre de ligne dans une requête pour msgbox
    Par Xorbane dans le forum VBA Access
    Réponses: 3
    Dernier message: 19/01/2012, 08h02
  3. Réponses: 3
    Dernier message: 19/05/2011, 14h24
  4. Réponses: 3
    Dernier message: 10/04/2009, 11h18

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