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

Python Discussion :

[time]Opération mathématique sur heure


Sujet :

Python

  1. #1
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2005
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2005
    Messages : 60
    Points : 52
    Points
    52
    Par défaut [time]Opération mathématique sur heure
    Bonjour à tous!

    Je code présentement une petite alarme pour me réveiller le matin

    J'ai besoin d'effectuer des opération mathématique sur du temps.
    J'enregistre d'abord un heure de levé dans un fichier.

    Au Déclanchement de l'alarme, je fais ceci:

    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
     
    def StartA():
    	Current_Time = int(time.strftime("%H%M%S"))
    	Save_Heure = int(Rappel_Heure())
     
    	if ( Current_Time < Save_Heure ):
    		Attent = Save_Heure - Current_Time
    	else:
    		Attent = (240000 - Current_Time) + Save_Heure
     
    	S_Attent = str(Attent)
    	print 'Alarme programmée!'
    	print 'Réveil dans %s heures, %s minutes, %s secondes'%(S_Attent[0:2],S_Attent[2:4],S_Attent[4:6])
    	time.sleep(Attent)
     
    	Player()
    Je me suis vite aperçu que ça marchais pas puisque mes opération mathématique qui traite sur mes interger ne fonctionne pas avec 24h60m60s.

    Pourriez-vous m'orienter vers un module de python ( Datetime peut-être?) et m'expliquez briêvement comment additionner et soustraire mon temps.

    Merci de votre aide!
    Joyeux Noël!

    @+

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2004
    Messages
    723
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 723
    Points : 923
    Points
    923
    Par défaut
    Tu peux soustraire deux objets de datetime (oublié le nom) pour obtenir un timedelta, tu peux aussi ajouter ce dernier à un datetime.
    Soustraire->avec l'opérateur -
    Il est aussi possible de comparer des dates à l'aide des opérateurs <, >, ==, !=, <= et >=

  3. #3
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2005
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2005
    Messages : 60
    Points : 52
    Points
    52
    Par défaut
    Merci ioffrig

    J'ai lu le module datetime et je dois avouer être un peu mélanger...

    Mon heure sauvegarder me cause aucun problême en utilisant une variable semblable:
    exemple pour 7h00 du matin:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var1 = datetime.time(07, 00, 00)
    J'ai créer un objet qui symbolise l'heure actuel ainsi ( je sais pas si c'est correcte...):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Current_Time = datetime.time(int(time.strftime("%H")), int(time.strftime("%M")),  int(time.strftime("%S")) )
    Et j'ai essayé un petit code semblable:

    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
     
    #!/bin/python
    #-*- coding:latin-1 -*-
     
    import time
    from time import strftime
    import datetime
    from datetime import date
     
    # Valeurs
    var1 = datetime.time(07, 00, 00)
     
    Current_Time = datetime.time(int(time.strftime("%H")), int(time.strftime("%M")),  int(time.strftime("%S")) )
     
    # Opération
    var3 = Current_Time - var1
     
    # Affichage
    print var1
    print Current_Time
    print var3
    J'ai malheureusement cette erreur:

    TypeError: unsupported operand type(s) for -: 'datetime.time' and 'datetime.time'

    Merci de votre aide

  4. #4
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut
    A priori, la soutraction de deux objet time n'existe pas.
    Ce sont des objets datetime que tu peux soustraire

    Tu peux te débrouiller comme ceci:

    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
    #!/bin/python 
    #-*- coding:latin-1 -*- 
     
    import time 
    from time import strftime 
    import datetime 
    from datetime import date 
     
    # Valeurs 
    var1 = datetime.datetime(1,1,1,07, 00, 00) 
     
    Current_Time = datetime.datetime(1,1,1,int(time.strftime("%H")), int(time.strftime("%M")),  int(time.strftime("%S")) ) 
     
     
     
    # Affichage 
    print var1 
    print Current_Time
     
    # Opération 
    var3 = var1 - Current_Time 
     
    print var3

  5. #5
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2005
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2005
    Messages : 60
    Points : 52
    Points
    52
    Par défaut
    Hé!
    J'étais pas loin...


    Merci Guigui! Ça marche...

    Plus qu'à me faire une petit interface

    @+


    Résolu!

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

Discussions similaires

  1. [Batch] opération mathématique sur des variables
    Par nicnictout dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 10/11/2014, 17h59
  2. [SimpleXML] Opérations mathématiques sur des float
    Par CBresso dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 11/05/2012, 14h38
  3. Réponses: 1
    Dernier message: 13/09/2010, 16h11
  4. opérations sur heures
    Par mateuil dans le forum Windows Forms
    Réponses: 2
    Dernier message: 12/12/2007, 16h54
  5. Opération mathématique sur une table
    Par webrider dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 23/09/2006, 15h01

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