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

Langage Delphi Discussion :

Calcul d'un intervalle temps


Sujet :

Langage Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 186
    Points : 84
    Points
    84
    Par défaut Calcul d'un intervalle temps
    Bonjour à tous,

    Je viens de créer une petite application qui se lance tous les jours à certaines heures. Les heures sont paramétrables par l'utilisateur.
    Vu que la fonction qui s'exécute dans mon programme prend +/- 20 min je voudrais que l'utilisateur ne sache pas mettre une heure trop proche d'une autre.

    Exemple :

    J'ai comme heure d'exécution de l'application :
    01:00:00
    05:00:00
    08:00:00
    12:00:00
    16:00:00
    ...

    Je veux qu'il soit impossible de rajouter comme heure 05:30:00 comme je ne veux pas que l'on sache mettre 11:30:00

    J'espère que j'ai été assez clair...

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Les heures sont stockées dans quoi ? Un Tableau, un StringList, autres ?

    Mais pour répondre tu peux t'orienter vers l'utilisation de la Fonction MinuteBetween afin de vérifier le nombre de minutes séparant la nouvelle entrée des entrées existantes.

    @+ Claudius.

  3. #3
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 949
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 949
    Points : 5 665
    Points
    5 665
    Par défaut
    Kio,

    Ton problème contient sa propre réponse :

    Comparer la nouvelle valeur désirée à toutes celles existant déjà, et refuser si un des écarts obtenus est < (+-)30 min.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 186
    Points : 84
    Points
    84
    Par défaut
    Merci pour ta réponse

    Les heures sont stockées dans une DB MySQL

    Peux-tu m'en dire un peu plus sur la fonction MinuteBetween ?

  5. #5
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Cette fonction est déclarée dans DateUtils.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    function MinutesBetween(const ANow, AThen: TDateTime): Int64;
    Elle renvoie le nombre de minutes séparant les deux valeurs TDateTime spécifiées.

    @+ Claudius

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 186
    Points : 84
    Points
    84
    Par défaut
    J'ai essayé la fonction MinutesBetween mais il me retourne des nombres assez bizarres.
    J'utilise un DateTimePicker pour choisir les heures et j'ai remarqué en mode debbug qu'il me convertit les heures en nombre entier alors que dans ma DB les heures sont au format HH:MM:SS
    Le problème ne provient pas de là ?

  7. #7
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Utilise TimeOf avec le DateTimePicker.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    var
      NewTime: TTime;
    begin
      NewTime := TimeOf(DateTimePicker1.Time);
     
      // Vérif avec MinutesBetween...
    @+

  8. #8
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    Citation Envoyé par yamino Voir le message
    Vu que la fonction qui s'exécute dans mon programme prend +/- 20
    que voulez vous dire exactement par +/- 20 m



    Citation Envoyé par yamino Voir le message
    J'espère que j'a.i été assez clair...
    c'est pas le cas, essais de mieux exposer ton problèmes.
    c'est en analysant les posts des autres que j'ai saisie un petit peut.
    je pense que le mieux c'est contraindre l'utilisateur saisir des heures par palier de 20 minutes et non de faire une vérification après chaque saisie sinon sa va etre lassant pour l'utilisateur de refaire une qu'il s'est trompé.
    on mettant deux boutons +/- tu incrément ton heures.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 186
    Points : 84
    Points
    84
    Par défaut
    J'exécute une requête Ping qui parcours un range d'adresses IP (+/- 500) et me retourne le nom des pc.
    Mais cette requête prend +/- 20 min donc je ne voudrais pas que l'utilisateur sache exécuter 2 fois le parcours en même temps.
    C'est l'utilisateur qui décide à quelle moment le parcourt doit avoir lieu

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 186
    Points : 84
    Points
    84
    Par défaut
    aityahia ton idée d'incrémenter d'une heure à chaque fois me semble pas mal...
    je pense que je vais opter pour cette solution

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 186
    Points : 84
    Points
    84
    Par défaut
    Avec un DateTimePicker y a t il moyen d'incrémenter (et décrémenter) à chaque clic d'1h sans pouvoir modifier les minutes ou les secondes ?
    Je voudrais garder le DateTimePicker pour garder le format hh:mm:ss

Discussions similaires

  1. Calcul d'un intervalle de temps en Python
    Par aeiouy49 dans le forum Calcul scientifique
    Réponses: 11
    Dernier message: 17/04/2014, 20h12
  2. [MySQL] Calculer un interval de temps (timestamp)
    Par krolineeee dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 09/06/2006, 17h34
  3. [Requete] Calcul Somme entre deux temps pour chaque jour
    Par nico33307 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 21/03/2006, 00h58
  4. Réponses: 6
    Dernier message: 15/02/2006, 18h06

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