Ich benutze die Variable current_month, um Daten abzufragen, aber hier ist der Haken - wenn der Tag im Monat später als der 15. ist, möchte ich den setzen Der aktuelle Monat ist der folgende Monat. Daher sollte der aktuelle Monat für den 16.04.2016 der 1.5.2016 sein. Ich habe Code, der funktioniert, aber es fühlt sich nicht pythonisch an. Vorschläge würden geschätzt werden.Ermitteln der aktuellen Monat Variable, die nach dem 15. Tag zum nächsten Monat rollt - Python 2.7
month = datetime.datetime.now().strftime("%m")
year = datetime.datetime.now().strftime("%Y")
day = datetime.datetime.now().strftime("%d")
#Check if day in the month is past 15th if so set current month
if int(day) > 15:
if int(month) < 9: # check if the month in 1-9 if so pad leading zero
x = int(month)+1
current_month = year+"-0"+str(x)+"-01"
if int(month) == 9: # check if the month in 1-9 if so pad leading zero
x = int(month)+1
current_month = year+"-"+str(x)+"-01"
elif int(month) == 12: # check if the month is Dec if so roll to the next year and set month to Jan
month = "01"
y = int(year)+1
current_month = str(y)+"-"+month+"-01"
else:
x = int(month)+1 # just add one to the month if months are 10 or 11
current_month = year+"-"+str(x)+"-01"
else:
current_month = year+"-"+month+"-01" #prior to the 15'th so just use normal year, month and day
Können Sie nicht einfach 16 Tage zum aktuellen Datum hinzufügen und dann den Tag auf 1 setzen? –
@ScottHunter: Das Hinzufügen von Tagen kann aufgrund unterschiedlicher Tage in verschiedenen Monaten ungenau sein. Es wäre genauer, 15 Tage zu subtrahieren und dann den Tag auf 1 zu setzen und einen Monat hinzuzufügen. – zondo
@zondo: Oder nur tun, wenn die Anpassung benötigt wird –