반응형
문제
입력 형식은 ‘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원 입니다.
반응형
'알고리즘 문제 & 프로그래밍 > 파이썬' 카테고리의 다른 글
[파이썬] wav파일에 lowpass필터 적용하는 법 (0) | 2021.05.01 |
---|---|
복리, 원리합계, 이자 계산 문제(등비수열) | 파이썬 while, for문 (0) | 2020.06.24 |
[백준 1110번] 더하기 사이클 문제 | 파이썬 while문 (0) | 2020.06.20 |
[백준 2884번] 알람시계 문제 | 파이썬 if문 (0) | 2020.06.13 |
[프로젝트 오일러] 5번 문제 & 풀이 (1 ~ 20 사이의 어떤 수로도 나누어 떨어지는 가장 작은 수) (0) | 2020.05.30 |
댓글