Maison  >  Article  >  développement back-end  >  Code d'implémentation Python pour obtenir des points temporels aléatoires non répétitifs au cours d'une période de temps spécifiée

Code d'implémentation Python pour obtenir des points temporels aléatoires non répétitifs au cours d'une période de temps spécifiée

高洛峰
高洛峰original
2017-03-20 13:23:472278parcourir

Cet article présente le code d'implémentation de Python pour obtenir des points temporels aléatoires non répétitifs dans une période de temps spécifiée

Scénario 1 : Prendre N 07:30 : Heure aléatoire entre 00 et 09:30:33.

Voici mon code :

#2016-12-10 7:06:29 codegay
import random
st = "07:30:00"
et = "09:30:33"

def time2seconds(t):
    h,m,s = t.strip().split(":")
    return int(h) * 3600 + int(m) * 60 + int(s)

def seconds2time(sec):
    m,s = pmod(sec,60)
    h,m = pmod(m,60)
    return "%02d:%02d:%02d" % (h,m,s)

sts = time2seconds(st) #sts==27000
ets = time2seconds(et) #ets==34233

rt = random.sample(range(sts,ets),10)
#rt == [28931, 29977, 33207, 33082, 31174, 30200, 27458, 27434, 33367, 30450]

rt.sort() #对时间从小到大排序


for r in rt:
    print(seconds2time(r))

"""
输出:
07:43:12
07:54:31
08:08:33
08:27:46
08:46:53
08:48:17
08:55:20
08:59:16
09:10:23
09:15:58
"""

À partir du code, nous pouvons constater que l'idée est de convertir le temps en secondes, puis nous pouvons utiliser la plage pour générer 07:30 -09:30 Le nombre de secondes entre les secondes, puis utilisez random.sample pour en extraire N secondes, et enfin convertissez les secondes au format d'heure requis.

Scénario 2 : Comparaison de la taille du temps et jugement de la plage horaire

>>> "09:30:00" > "9:30:00"
False
>>> "09:30:00" == "9:30:00"
False

Le jugement basé sur la chaîne peut ressembler à la situation ci-dessus, je pense qu'il devrait être unifié en Il est plus fiable de calculer les chiffres plus tard.

Scénario 3 : L'heure convertie en secondes est exactement égale à l' horodatage du 1er janvier 1970

L'heure UNIX, ou l'heure POSIX est UNIX ou de type UNIX. représentation temporelle utilisée par le système : le nombre total de secondes depuis 0:00:00 le 1er janvier 1970 UTC jusqu'à aujourd'hui.

Une fois convertie en secondes, l'heure dans les 24 heures suivant un jour est exactement égale à l'horodatage du 1er janvier 1970 UTC. Ainsi, si nécessaire, vous pouvez utiliser la fonction d'horodatage intégrée du langage de programmation pour la conversion.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn