def simple_interest(principal, annual_interest_rate, period_type, period_count):
"""
단리 방식으로 이자를 계산하는 함수
:param principal: 원금 (예: 1,000,000)
:param annual_interest_rate: 연이율 (예: 5% -> 0.05)
:param period_type: 기간의 단위 (daily, weekly, monthly, yearly 등)
:param period_count: 해당 단위로 몇 번 반복되는지 (예: 10일, 5주, 3개월, 2년 등)
:return: (원리금, 총이자)
"""
# 1년을 기준으로 한 'period_type'당 횟수
# 예) 연이율을 일 단위로 쪼개려면, 일반적으로 1년 = 365일로 가정
PERIODS_PER_YEAR = {
'daily': 365,
'weekly': 52,
'monthly': 12,
'yearly': 1
}
if period_type not in PERIODS_PER_YEAR:
raise ValueError(f"지원하지 않는 기간 단위입니다: {period_type}")
# 연이율을 해당 주기의 이자율로 변환
# (단리의 경우 연간 이자율을 단위기간 이자율로 바꿔서, period_count 회 만큼만 적용)
periods_in_year = PERIODS_PER_YEAR[period_type]
# 1회 단위 이자율 (단리 계산을 위해 사용)
# 예) daily면 annual_interest_rate / 365
interest_rate_per_period = annual_interest_rate / periods_in_year
# 단리에서는 매 기간마다 추가되는 이자가 동일
# total_interest = 원금 * (이자율) * (기간 수)
total_interest = principal * interest_rate_per_period * period_count
total_amount = principal + total_interest
return total_amount, total_interest
def compound_interest(principal, annual_interest_rate, period_type, period_count):
"""
복리 방식으로 이자를 계산하는 함수
:param principal: 원금
:param annual_interest_rate: 연이율 (예: 5% -> 0.05)
:param period_type: 기간의 단위 (daily, weekly, monthly, yearly 등)
:param period_count: 해당 단위로 몇 번 반복되는지
:return: (원리금, 총이자)
"""
PERIODS_PER_YEAR = {
'daily': 365,
'weekly': 52,
'monthly': 12,
'yearly': 1
}
if period_type not in PERIODS_PER_YEAR:
raise ValueError(f"지원하지 않는 기간 단위입니다: {period_type}")
periods_in_year = PERIODS_PER_YEAR[period_type]
# 1회 단위 이자율
interest_rate_per_period = annual_interest_rate / periods_in_year
# 복리 공식: A = P * (1 + i)^n
# n은 전체 적용 횟수
total_amount = principal * ((1 + interest_rate_per_period) ** period_count)
total_interest = total_amount - principal
return total_amount, total_interest
if __name__ == "__main__":
# 예시 입력값
principal = 1000000 # 원금: 1,000,000원
annual_interest_rate = 0.05 # 연이율: 5%
# 예) "매일(daily)로 30일간" 단리, 복리를 각각 계산해보자
period_type = "daily"
period_count = 30 # 30일
# 1) 단리 계산
si_amount, si_interest = simple_interest(principal, annual_interest_rate, period_type, period_count)
print(f"[단리] {period_count} {period_type} 후 원리금: {si_amount:,.0f}원, 이자: {si_interest:,.0f}원")
# 2) 복리 계산
ci_amount, ci_interest = compound_interest(principal, annual_interest_rate, period_type, period_count)
print(f"[복리] {period_count} {period_type} 후 원리금: {ci_amount:,.0f}원, 이자: {ci_interest:,.0f}원")
# 기간을 예: 100년으로 바꿔서 계산하고 싶다면
# period_type = "yearly"
# period_count = 100
# 로 변경 후 다시 함수에 넣으면 됩니다.
카테고리 없음
복리계산기
반응형
728x90
댓글