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

 Delphi Discussion :

Comment chronométrer le temps passé sur un programme ?


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 3
    Par défaut Comment chronométrer le temps passé sur un programme ?
    Bonjour,

    J'aimerai chronométré le temps passé sur le programme par l'utilisateur dans le but de calculer des quotas (programme de sondage téléphonique).

    Pourriez vous m'aider ?

    Merci

    Charlotte

  2. #2
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Salut,

    Est ce que l'on doit voir le temps passé qui s'affiche au fur et à mesure ?
    J'entends par la : Est ce que le programme doit afficher en temps réel le temps écoulé depuis l'ouverture du programme ?

    Une solution simple serait de faire ainsi :

    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
    var
      Form1: TForm1;
      StartChrono:TDateTime;
     
    implementation
     
    {$R *.dfm}
     
     
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      // On récupère la date ainsi que l'heure à laquelle l'application s'est lancée
      StartChrono:=Now;
    end;
     
    procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    var
      duree:TDateTime;
    begin
      // On récupère la durée écoulée
      duree:=Now-StartChrono;
      // On affiche la durée
      ShowMessage(TimeToStr(duree));
    end;
    C'est une des façon de faire

    A+

  3. #3
    Membre Expert
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 704
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 704
    Par défaut
    Ou sinon, jouer avec GetTickCount.

    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. :bug: ___ "http://club.developpez.com/regles/#LIII-A"Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.3 Entreprise - Visual studio 2022
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.7)

  4. #4
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Par défaut
    1. Déclarer les variables TTime
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      InitTime, FinalTime : TTime;
    2. Initialiser la variable à l'entrée de l'utilisateur dans le programme
    3. Calculer le temps passé par l'utilisateur à sa sortie
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      FinalTime := Now - InitTime;

  5. #5
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Citation Envoyé par Lung Voir le message
    Ou sinon, jouer avec GetTickCount.

    Oui, j'y avais pensé mais je n'arrive pas à reformater le résultat pour dire d'avoir la notion hh:mm:ss

  6. #6
    Membre Expert

    Profil pro
    Leader Technique
    Inscrit en
    Juin 2005
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Leader Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 756
    Par défaut
    Attention avec GetTickCount, le compteur s'incrémente à partir du démarrage de la machine. Il arrive donc un moment où le compteur fait un overflow et retourne au début...
    Si l'application est utilisée sur un serveur, ça peut arriver.

    Sinon pour formater le résultat au format hh:mm:ss, il suffit de faire un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
       debut := GetTickCount;
       ...
       fin := GetTickCount;
       total := (fin - debut) div 1000; // Calcul du temps en secondes.
       temps := Format('%0.2d:%0.2d:%0.2d', [total div 3600, (total mod 3600) div 60, (total mod 3600) mod 60]);
    Ou encore :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
       debut := GetTickCount;
       ...
       fin := GetTickCount;
       total := (fin - debut) div 1000; // Calcul du temps en secondes.
       temps := TimeToStr( total / (3600 * 24));

  7. #7
    Membre Expert
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 704
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 704
    Par défaut
    Citation Envoyé par Franck SORIANO Voir le message
    Il arrive donc un moment où le compteur fait un overflow et retourne au début...
    C'est quoi la limite ?


    Citation Envoyé par Franck SORIANO Voir le message
    Si l'application est utilisée sur un serveur, ça peut arriver.
    Effectivement.
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. :bug: ___ "http://club.developpez.com/regles/#LIII-A"Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.3 Entreprise - Visual studio 2022
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.7)

Discussions similaires

  1. chronomètre du temps passé sur une production
    Par speedev dans le forum Autres Logiciels
    Réponses: 0
    Dernier message: 04/03/2011, 11h08
  2. Comment caluler le temps passé sur une tache ?
    Par Lola21 dans le forum Excel
    Réponses: 6
    Dernier message: 27/04/2010, 14h04
  3. temps passé sur un site web
    Par tsotb dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/07/2007, 21h41
  4. Calcul temps passé sur une page PHP pur
    Par mathieugamin dans le forum Langage
    Réponses: 10
    Dernier message: 29/03/2007, 17h22
  5. Temps passé sur une page !!
    Par nizarsm dans le forum ASP
    Réponses: 4
    Dernier message: 30/06/2006, 21h42

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