본문 바로가기
알고리즘 문제 & 프로그래밍/파이썬

일복리, 이자 계산 & 기간 구하기 문제 | 파이썬 datetime 라이브러리

by 달슬 2020. 7. 1.
반응형

문제

입력 형식은 ‘20200701’과 같은 형식으로 시작일과 종료일을 입력 받아 기간을 계산하고, 그 기간의 일을 기준으로 한 복리 계산을 하시오.


접근

1. 날짜를 문자열로 4글자 / 2글자 / 2글자로 끊고 숫자형태로 변환한다.

2. 파이썬 datetime 라이브러리를 이용하여, 시작일과 종료일 사이의 기간을 구한다.

3. 그 후, 입력 형식인 '20200701'을 보기 좋게 '2020-07-01'로 바꾸어 준다.

4. 원금에 대한 일복리 계산식을 세운다.

import datetime

start_date = str(input('시작 날짜를 입력하세요(예시:20200701) : '))
end_date = str(input('마지막 날짜를 입력하세요(예시:20200701) : '))
start_money = money = int(input('원금 금액을 입력하세요(예시 : 10000) : '))
rate = float(input('일 단위 이율을 입력하세요(예시 : 0.1) : '))

start_year = int(start_date[ :4])
start_month = int(start_date[4:6])
start_day = int(start_date[6: ])

end_year = int(end_date[ :4])
end_month = int(end_date[4:6])
end_day = int(end_date[6: ])

now = datetime.datetime.now()
start = datetime.datetime(start_year, start_month, start_day)
end = datetime.datetime(end_year, end_month, end_day)

diff_day = (end - start).days

now_f = now.strftime('%Y-%m-%d')
start_f = start.strftime('%Y-%m-%d')
end_f = end.strftime('%Y-%m-%d')

money *= round(((1+rate)**diff_day), 2)
rate_money = round(money - start_money, 2)

print('\n')
print(f'오늘은 {now_f} 입니다.')
print(f'원금은 {start_money}원 입니다.')
print(f'시작일은 {start_f} 입니다.')
print(f'종료일은 {end_f} 입니다.')
print(f'총 기간은 {diff_day}일 입니다.')
print(f'이자율은 {rate*100}% 입니다.')
print(f'이자총액은 {rate_money}원 입니다.')
print(f'말기시점 만기금은 {money}원 입니다.')

결과

<입력 부분>

시작 날짜를 입력하세요(예시:20200701) : 20190101
마지막 날짜를 입력하세요(예시:20200701) : 20200701
원금 금액을 입력하세요(예시 : 10000) : 10000
일 단위 이율을 입력하세요(예시 : 0.1) : 0.01

 

<출력 부분>
오늘은 2020-07-01 입니다.
원금은 10000원 입니다.
시작일은 2019-01-01 입니다.
종료일은 2020-07-01 입니다.
총 기간은 547일 입니다.
이자율은 1.0% 입니다.
이자총액은 2301000.0원 입니다.
말기시점 만기금은 2311000.0원 입니다.

반응형

댓글