Quel est le moyen le plus simple pour trouver la différence entre les 2 fois en python?
J'ai 2 fois les valeurs qui ont le type datetime.time
. Je veux trouver leur différence. La chose évidente à faire est de t1 - t2, mais cela ne fonctionne pas. Il fonctionne pour les objets de type datetime.datetime
mais pas pour datetime.time
. Alors, quelle est la meilleure façon de le faire?
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, notez qu'un datetime.le temps est un moment de la journée, indépendamment d'un jour donné, et donc la différence entre les deux datetime.valeurs de temps va être de moins en moins de 24 heures.
Une approche consiste à convertir à la fois de type datetime.valeurs de temps dans des valeurs comparables (comme millisecondes), et de trouver la différence.
C'est un peu boiteux, mais il fonctionne.
Aussi un peu ridicule, mais vous pouvez essayer de la cueillette de l'arbitraire d'un jour et l'incorporation à chaque fois, en utilisant
datetime.datetime.combine
, puis en soustrayant:Vous pourriez transformer à la fois en timedelta objets et les soustraire les uns des autres, qui prendra en charge pour les reports. Par exemple:
Négatif timedelta objets en Python obtenir un négatif jours sur le terrain, avec les autres champs positif. Vous pouvez le vérifier à l'avance: comparaison fonctionne sur les deux fois des objets et des timedelta objets:
Python a pytz (http://pytz.sourceforge.net) module, qui peut être utilisé pour l'arithmétique de 'temps' objets. Il prend soin de l'heure d'été décalages ainsi. La page mentionnée ci-dessus a un certain nombre d'exemples qui illustrent l'utilisation de pytz.
Il semble que ce n'est pas pris en charge, car il n'y aurait pas une bonne façon de traiter avec des débordements en datetime.temps. Je sais que ce n'est pas une réponse directement, mais peut-être que quelqu'un avec plus d'python expérience que moi, peut prendre un peu plus loin. Pour plus d'info, voir ceci: http://bugs.python.org/issue3250
Récupérer le temps en millisecondes et puis faire la soustraction.
De l'environnement.TickCount semble bien fonctionner si vous avez besoin quelque chose de rapide.
int start = Environnement.TickCount
...DoSomething()
int elapsedtime = Environnement.TickCount - début
Jon