>source

내 코드는이 3 개의 변수를 설정하는 것으로 시작합니다.

var1 = 'Sep20'
var2 = '2020 09'
var3 = '2020-10-01'

var2와 var3이 var1의 함수가되도록 코딩하려면 어떻게해야 하나의 변수 만 설정하면됩니까? 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

  • 답변 # 1

    당신은 이것을 아주 잘 할 수 있습니다. 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")
    
    

    relativedelta에 대한 자세한 정보는 여기를 참조하고 strftime에 대한 자세한 정보는 여기를 참조하십시오.

  • 답변 # 2

    아래의 최소 예는 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')
        ]
    
    

관련 자료

  • 이전 python - stdout은 쉘에서 이전 행을 1 개 이상 가져옵니다
  • 다음 Python에서 함수에서 클래스로 목록 전달