Мой код начинается с установки этих трех переменных
var1 = 'Sep20'
var2 = '2020 09'
var3 = '2020-10-01'
Как написать код так, чтобы var2 и var3 были функциями var1, чтобы мне нужно было установить только 1 переменную? Я хотел бы ввести строковое значение для var1 и автоматически рассчитать var2 и var3
Другой пример для другого месяца:
var1 = 'Dec20' # a given month MMM YY
var2 = '2020 12' # the same month YYYY MM
var3 = '2021-01-01' # the first day of the NEXT month YYYY-MM-DD
В частности, посмотрите документацию для кодов форматов strftime() и strptime().
спасибо, я прошел часть пути, используя эти
Вы можете сделать это очень красиво с datetime
from datetime import date
from dateutil.relativedelta import relativedelta
d = date(2020, 12, 1)
var1 = d.strftime("%b%y")
var2 = d.strftime("%Y %m")
nextd = d + relativedelta(months=1)
var3 = nextd.strftime("%Y-%m-01")
Я разобрался с var1
и var2
, но не знал, как добраться до var3
. спасибо за подсказку relativedelta
!
В приведенном ниже минимальном примере используется пакет dateutil:
from datetime import datetime
from dateutil import relativedelta
def date_func(year, month, day):
x = datetime(year,month,day)
first_next_month = x + relativedelta.relativedelta(months=1, day=1)
return [
x.strftime('%b%y'),
x.strftime('%Y %m'),
first_next_month.strftime('%Y-%m-%d')
]
Взгляните на
datetime.datetime.strptime
иdatetime.datetime.strftime