Heim  >  Fragen und Antworten  >  Hauptteil

Python – Frage zur Berechnung von Daten

Holen Sie sich zuerst den Code

def get_date(today,num):

    try:

        myday = datetime.datetime( int(today[0:4]),int(today[5:7]),int(today[8:10]) ) + datetime.timedelta(days=num)

        dt = myday.strftime('%Y-%m-%d')

    except Exception as e:

        print(e)

        print('日期格式不合法')

        return

    return dt
if __name__=='__main__':

    print('计算日期列表...')

    date_list=[]

    today='2017-06-20'

    for i in range(-90,0):

        date=get_date(today,i)

        ISOTIMEFORMAT = '%Y-%m-%d'

        tm=time.strptime(date, ISOTIMEFORMAT)

        if time.asctime(tm)[0:3]!='Sat' and time.asctime(tm)[0:3]!='Sun':

            date_list.append(date)#去除双休日

        else:

            print date,'is holiday,removed..'

    #date_list就是日期列表

Die Berechnung gilt für alle Daten in den 90 Tagen vor dem 20.06.2017, außer an Wochenenden. Hat jemand eine einfachere und gewalttätigere Methode? Auch Bibliotheken von Drittanbietern werden empfohlen.

伊谢尔伦伊谢尔伦2675 Tage vor781

Antworte allen(1)Ich werde antworten

  • 代言

    代言2017-06-22 11:53:40

    from datetime import datetime, timedelta
    
    def get_date(today):
        date_format = '%Y-%m-%d'
        dt = datetime.strptime(today, date_format)
        for i in range(1, 91):
            dt = dt + timedelta(days=-1)
            if dt.weekday() > 0 and dt.weekday() < 6:
                yield dt.strftime(date_format)
    
    print list(get_date('2017-06-20'))

    Antwort
    0
  • StornierenAntwort