예제 #1
0
def get_dates_from_timegrain(from_date, to_date, timegrain="Daily"):
    from_date = getdate(from_date)
    to_date = getdate(to_date)

    days = months = years = 0
    if "Daily" == timegrain:
        days = 1
    elif "Weekly" == timegrain:
        days = 7
    elif "Monthly" == timegrain:
        months = 1
    elif "Quarterly" == timegrain:
        months = 3

    if "Weekly" == timegrain:
        dates = [get_last_day_of_week(from_date)]
    else:
        dates = [get_period_ending(from_date, timegrain)]

    while getdate(dates[-1]) < getdate(to_date):
        if "Weekly" == timegrain:
            date = get_last_day_of_week(
                add_to_date(dates[-1], years=years, months=months, days=days))
        else:
            date = get_period_ending(
                add_to_date(dates[-1], years=years, months=months, days=days),
                timegrain)
        dates.append(date)
    return dates
예제 #2
0
def get_period_ending(date, timegrain):
    date = getdate(date)
    if timegrain == "Daily":
        return date
    else:
        return getdate({
            "Daily": date,
            "Weekly": get_last_day_of_week(date),
            "Monthly": get_last_day(date),
            "Quarterly": get_quarter_ending(date),
            "Yearly": get_year_ending(date),
        }[timegrain])
예제 #3
0
파일: dateutils.py 프로젝트: GPD-ERP/frappe
def get_period_ending(date, timegrain):
	date = getdate(date)
	if timegrain == 'Daily':
		return date
	else:
		return getdate({
			'Daily': date,
			'Weekly': get_last_day_of_week(date),
			'Monthly':  get_last_day(date),
			'Quarterly': get_quarter_ending(date),
			'Yearly': get_year_ending(date)
		}[timegrain])