मैं अजगर के साथ पिछले महीने की तारीख पाने की कोशिश कर रहा हूं। यहाँ मैं क्या करने की कोशिश की है:
str( time.strftime('%Y') ) + str( int(time.strftime('%m'))-1 )
हालांकि, यह तरीका 2 कारणों से खराब है: पहला यह 2012 के फरवरी (201202 के बजाय) के लिए 20122 में लौटता है और दूसरा यह जनवरी में 12 के बजाय 0 वापस आएगा।
मैंने इस मुसीबत को हल कर दिया है
echo $(date -d"3 month ago" "+%G%m%d")
मुझे लगता है कि अगर इस उद्देश्य के लिए बैश में एक अंतर्निहित तरीका है, तो अजगर, बहुत अधिक सुसज्जित है, इस लक्ष्य को प्राप्त करने के लिए अपनी स्क्रिप्ट लिखने के लिए मजबूर करने से बेहतर कुछ प्रदान करना चाहिए। बेशक मैं ऐसा कुछ कर सकता था:
if int(time.strftime('%m')) == 1:
return '12'
else:
if int(time.strftime('%m')) < 10:
return '0'+str(time.strftime('%m')-1)
else:
return str(time.strftime('%m') -1)
मैंने इस कोड का परीक्षण नहीं किया है और मैं इसका वैसे भी उपयोग नहीं करना चाहता (जब तक कि मुझे कोई अन्य तरीका नहीं मिल सकता: /)
आपकी सहायताके लिए धन्यवाद!