2016-05-10 11 views
-3

Wie kann ich das aktuelle Quartal und dann das erste Datum und das letzte Datum des aktuellen Quartals in Python erhalten?Erhalten Sie das erste Datum und das letzte Datum des aktuellen Quartals in Python?

Ich möchte von Datetime

import datetime 

Menschen Überlauf vorwärts gerade beantworten muss schauen in Stapel zu importieren und die sehr einfach sein sollte. Was auch immer Sie verlinkt haben, es hat viele Kommentare. SO müssen Benutzer alle Anmerkungen durchgehen, um korrekte Antwort zu finden. Ich schreibe eine einfache und direkte Antwort.

+3

Mögliches Duplikat [Python ersten und letzten Tag des laufenden Kalenderquartals bekommen] (http://stackoverflow.com/questions/36793381/python-get-first-and-last-day-of-current- Kalenderviertel) – piyushj

+0

Danke piyush jaiswal, wenn ich jemals danach gesucht habe, habe ich es nicht auf der ersten Seite bekommen. Also, ich dachte, es ist nicht im Stackoverflow. – Krishh

Antwort

2

Jeder, wie ich einige einfache Lösung in C# gefunden und konvertiert es in Python,

from datetime import datetime,timedelta 
current_date=datetime.now() 
currQuarter = (current_date.month - 1)/3 + 1 
dtFirstDay = datetime(current_date.year, 3 * currQuarter - 2, 1) 
dtLastDay = datetime(current_date.year, 3 * currQuarter + 1, 1) + timedelta(days=-1) 
4

der erste Tag zu haben, ist das gleiche mit @ Karishh-Lösung. Aber für das letzte Datum verursacht Python2.7 ein Problem für das vierte Quartal. Weil 12 + 1 = 13 und datetime 13 nicht als Monat akzeptiert. Sie müssen also ein paar Tricks machen, um damit umzugehen.

import datetime 


def get_quarter(date): 
    return (date.month - 1)/3 + 1 

def get_first_day_of_the_quarter(date): 
    quarter = get_quarter(date) 
    return datetime.datetime(date.year, 3 * quarter - 2, 1) 

def get_last_day_of_the_quarter(date): 
    quarter = get_quarter(date) 
    month = 3 * quarter 
    remaining = month/12 
    return datetime.datetime(date.year + remaining, month % 12 + 1, 1) + datetime.timedelta(days=-1) 
Verwandte Themen