में सेकंड्स को
def convert_to_seconds(timeduration):
...
convert_to_seconds("1h")
-> 3600
convert_to_seconds("1d")
-> 86400
आदि?
धन्यवाद!
में सेकंड्स को
def convert_to_seconds(timeduration):
...
convert_to_seconds("1h")
-> 3600
convert_to_seconds("1d")
-> 86400
आदि?
धन्यवाद!
हाँ, वहाँ एक अच्छा सरल विधि है कि आप एक datetime पुस्तकालय के लिए मैनुअल को पढ़ने के लिए बिना सबसे अधिक भाषाओं में उपयोग कर सकते हैं। इस विधि भी औंस/पाउंड/टन आदि आदि को वाग्विस्तार जा सकता है:
seconds_per_unit = {"s": 1, "m": 60, "h": 3600, "d": 86400, "w": 604800}
def convert_to_seconds(s):
return int(s[:-1]) * seconds_per_unit[s[-1]]
मैं datetime मॉड्यूल से the timedelta class उपयोग करने की अनुशंसा:
from datetime import timedelta
UNITS = {"s":"seconds", "m":"minutes", "h":"hours", "d":"days", "w":"weeks"}
def convert_to_seconds(s):
count = int(s[:-1])
unit = UNITS[ s[-1] ]
td = timedelta(**{unit: count})
return td.seconds + 60 * 60 * 24 * td.days
आंतरिक रूप से, timedelta
वस्तुओं के रूप में माइक्रोसेकंड, सेकंड, और दिन सब कुछ की दुकान। इसलिए जब आप इसे मिलीसेकंड या महीनों या वर्षों जैसे इकाइयों में पैरामीटर दे सकते हैं, तो अंत में आपको timedelta
लेना होगा और सेकंड में कनवर्ट करना होगा।
यदि **
वाक्यविन्यास आपको भ्रमित करता है, तो यह पायथन apply वाक्यविन्यास है। असल में, इन फ़ंक्शन कॉल सब बराबर हैं:
def f(x, y): pass
f(5, 6)
f(x=5, y=6)
f(y=6, x=5)
d = {"x": 5, "y": 6}
f(**d)
मैं कसम खाता हूँ मैं अपने जवाब ;-) +1 कॉपी नहीं किया था और मुझे लगता है कि मैं मेरा हटा देंगे। –
हाहा, +1 और ब्रावो, मुझे शर्मिंदा है कि यह मेरे लिए नहीं हुआ! मैं अभी भी अनुशंसा करता हूं कि हर कोई इस तरह के कार्य के लिए 'डेटाटाइम' लाइब्रेरी और 'टाइमडेल्टा' वर्ग का उपयोग कैसे करें, क्योंकि कई मामलों में यह सबसे सुविधाजनक विकल्प होगा। हालांकि, मुझे यह स्वीकार करना होगा कि इस विशेष प्रश्न के लिए मेरा समाधान मेरे से बेहतर है। –
हाँ +1 यह जो मैं चाहता था उसे प्राप्त करने के लिए यह एक साधारण, सुरुचिपूर्ण विधि है .. धन्यवाद! – Andrew