본문으로 건너뛰기
🛠️ToolsShed

회계연도 계산기

임의의 날짜에 대한 회계연도 분기, 시작/종료 일자, 진행률을 계산합니다. 미국, 영국, 호주 및 맞춤 회계연도를 지원합니다.

이 도구 소개

회계연도는 조직이 회계 처리, 재무 보고 및 예산 편성에 사용하는 12개월 기간입니다. 달력 연도(1월~12월)와 달리, 회계연도는 임의의 날짜에 시작하고 종료할 수 있으므로 기업과 정부가 재무 주기를 운영 요구에 맞출 수 있습니다. 미국 연방정부는 10월 1일~9월 30일, 영국은 4월 6일~4월 5일, 호주는 7월 1일~6월 30일을 사용하며, 각각 고유한 역사적, 법적, 계절적 요인을 반영합니다.

이 회계연도 계산기는 현재 속한 회계연도 분기가 무엇인지 판단하고 회계연도 및 현재 분기의 정확한 시작일과 종료일을 제공합니다. 임의의 날짜를 입력하고 회계연도 시작월을 선택하거나(미국 연방정부, 영국, 호주 등의 일반적인 사전 설정 선택 가능) 도구가 회계연도 이름, 분기 번호, 날짜 범위 및 진행 상황 지표를 즉시 계산합니다. 또한 연도 말 명명법(2025년에 종료하는 FY2025)과 연도 초 명명법(2024년에 시작하는 FY2025)을 전환하여 조직의 보고 규칙과 일치시킬 수 있습니다.

이 도구는 재무 팀, 회계사, 비즈니스 분석가 및 분기별 재무 기한 추적이나 분기 프로젝트 계획을 세우는 모든 사람에게 필수입니다. 재무 보고서를 조정하거나 분기별 목표를 설정하거나 조직의 재무 주기에서 현재 위치를 이해하는 경우, 이 계산기는 회계 연도의 위치와 현재 분기의 남은 시간에 대한 즉각적인 명확성을 제공합니다.

자주 묻는 질문

코드 구현

# 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.