Partage
  • Partager sur Facebook
  • Partager sur Twitter

Créer une fonction temps en minutes

Sujet résolu
    1 octobre 2015 à 22:26:29

    Bonsoir,

    Je voudrai créer une fonction temps qui afficherai le temps comme une horloge mais tout le temps doit etre en minutes.

    Je m'explique il m'est interdit de prendre la fonction time, et il m'est interdit de créer un temps en heure ou en seconde uniquement en minutes.

    De ce fait j'ai créer une fonction qui affiche le temps en heure mais je n'arrive pas à créer une fonction qui change le temps et le calcul genre si il est

    9 : 50 et qu'on rajoute 50 minutes au temps il doit être 10 : 40 de ce fait on sait que 10 heure = 600 minutes donc  600 / 60 = 10h mais si je fais (600 + 50)%60 donne 50.

    voici ma fonction temps :

    def temps (minutes): 
        
        heure = int(minutes/60) 
        minutes = minutes %60
        return heures + ":" + minutes

    pourriez vous m'aider s'il vous plait :'( j'aimerai maintenant afficher ma fonction mais le soucis c'est que je ne sais pas comment l'afficher à l'écran après l'avoir import dans un autre code

    -
    Edité par nnnnjjjjj 1 octobre 2015 à 22:30:15

    • Partager sur Facebook
    • Partager sur Twitter
      2 octobre 2015 à 1:51:59

      Salut,

      Peut être que j'ai mal compris ta question mais si tu demandes comment est ce que tu peux utiliser la fonction que tu as créé, il suffit juste de faire par exemple

      monTemps = temps(650)
      print(monTemps)

      Tu peux aussi raccourcir l'écriture en faisant directement

      print(temps(650))

      Si tu demandes comment faire une fonction de calcul du temps (genre 9:50 + 40mn), il suffit d'abord de convertir la première heure en minutes, ensuite tu ajoutes les minutes restantes. Dans l'exemple de 9:50 et 40mn, ça donnerait : ((9 * 60) + 50) + 40. Ainsi, les 630 minutes obtenues pourront être passées à ta fonction temps qui retournera la bonne heure.

      Merci d'être plus précis si ce n'est pas ce que tu demandais.

      Cordialement !

      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        2 octobre 2015 à 7:43:28

        hello,

        def temps (minutes: int) -> str:
            heure = minutes // 60
            minutes = minutes %60
            return "%i:%i" % (heure, minutes)

        ton code n'aurais pas fonctionné car tu faisais heure + ':' + minutes. or, heure est encore un int, et ':' est une str. du coup python as du te crasher dessus pour ça ;)

        sinon, heure = int(heure / 60), c'est identique à heure // 60, car l'opérateur // renvoit un nombre entier (division euclidienne)

        ensuite, un truc doit te surprendre dans mon code, c'est le def temps (minutes: int) -> str:

        en fait j'utilise des annotations (tu peux les enlever, mais je trouve que c'est tres utile quand on code, car si ca plante, python pourra te dire : hé oh ! j'attendais un int pour l'argument minutes !

        salut ;)

        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          2 octobre 2015 à 16:43:25

          La fonction divmod est très utile pour ce genre de calculs :

          def time_repr(minutes):
              '{}:{}'.format(*divmod(minutes, 60))
          
          • Partager sur Facebook
          • Partager sur Twitter
            3 octobre 2015 à 13:06:41

            Merci beaucoup les gars !

            C'est exactement ce que je voulais, vous m'avez beaucoup aidé :D

            • Partager sur Facebook
            • Partager sur Twitter

            Créer une fonction temps en minutes

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown