Перейти к содержимому

Калькулятор Финансового Года

Вычисляет квартал финансового года, даты начала/конца и прогресс для любой даты. Поддерживает США, Великобританию, Австралию и пользовательские финансовые годы.

Об этом инструменте

Финансовый год — это 12-месячный период, который организации используют для учёта, финансовой отчётности и бюджетирования. В отличие от календарного года (январь–декабрь), финансовый год может начинаться и заканчиваться в любые даты, позволяя компаниям и правительствам согласовывать свои финансовые циклы с их операционными потребностями. Федеральное правительство США использует период с 1 октября по 30 сентября, Великобритания — с 6 апреля по 5 апреля, а Австралия — с 1 июля по 30 июня, отражая каждое уникальные исторические, правовые или сезонные факторы.

Этот калькулятор финансового года помогает определить, в каком квартале финансового года вы находитесь, и предоставляет точные даты начала и окончания как финансового года, так и текущего квартала. Просто введите любую дату, выберите месяц начала финансового года (или выберите распространённый предустановки, такие как Федеральное правительство США, Великобритания или Австралия) и инструмент мгновенно рассчитает название финансового года, номер квартала, диапазоны дат и показатели прогресса. Вы также можете переключаться между номенклатурой конца года (FY2025, заканчивающаяся в 2025) и номенклатурой начала года (FY2025, начинающаяся в 2024) в соответствии с соглашением об отчётности вашей организации.

Этот инструмент необходим для финансовых команд, бухгалтеров, бизнес-аналитиков и всех, кто отслеживает финансовые сроки или планирует проекты на протяжении кварталов. Независимо от того, выполняете ли вы сверку финансовых отчётов, устанавливаете квартальные цели или просто разбираетесь в том, где вы находитесь в финансовом цикле вашей организации, этот калькулятор обеспечивает мгновенную ясность о вашей позиции в финансовом году и оставшемся времени в текущем квартале.

Часто задаваемые вопросы

Реализация кода

# Fiscal Year Calculator
from datetime import date, timedelta

def get_fiscal_year(d: date, fy_start_month: int, naming_end: bool = True) -> dict:
    """
    Calculate fiscal year details for a given date.
    fy_start_month: 1=Jan, 2=Feb, ..., 10=Oct, etc.
    """
    month = d.month
    year = d.year

    # Determine FY start year
    if month >= fy_start_month:
        fy_start = date(year, fy_start_month, 1)
    else:
        fy_start = date(year - 1, fy_start_month, 1)

    # FY end date (one day before next FY start)
    fy_end_year = fy_start.year + 1
    fy_end = date(fy_end_year, fy_start_month, 1) - timedelta(days=1)

    # FY name
    fy_name = f"FY{fy_end_year}" if naming_end else f"FY{fy_start.year}"

    # Quarter
    months_from_start = (month - fy_start_month) % 12
    quarter = months_from_start // 3 + 1

    # Quarter start/end
    q_start_month = (fy_start_month + (quarter - 1) * 3 - 1) % 12 + 1
    q_start_year = fy_start.year + ((fy_start_month + (quarter - 1) * 3 - 1) // 12)
    q_start = date(q_start_year, q_start_month, 1)
    q_end_month = (q_start_month + 2) % 12 + 1
    if q_end_month == 1:
        q_end = date(q_start_year + 1, 1, 1) - timedelta(days=1)
    else:
        q_end = date(q_start_year, q_start_month + 3, 1) - timedelta(days=1)

    total_days = (fy_end - fy_start).days + 1
    elapsed = (d - fy_start).days
    remaining = total_days - elapsed
    progress = round(elapsed / total_days * 100)

    return {
        "fy_name": fy_name,
        "quarter": quarter,
        "fy_start": fy_start.isoformat(),
        "fy_end": fy_end.isoformat(),
        "q_start": q_start.isoformat(),
        "q_end": q_end.isoformat(),
        "days_elapsed": elapsed,
        "days_remaining": remaining,
        "progress_pct": progress,
    }

# Examples
today = date.today()
print("US Federal (Oct):", get_fiscal_year(today, 10, naming_end=True))
print("UK (Apr):", get_fiscal_year(today, 4, naming_end=True))
print("Australia (Jul):", get_fiscal_year(today, 7, naming_end=True))

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.