[C++ 프로그래밍] d-day 구하는 프로그램
- 최초 등록일
- 2005.01.26
- 최종 저작일
- 2001.05
- 9페이지/ MS 워드
- 가격 1,000원
소개글
C++ 수업에서 만점받은 레포트
목차
문제 정의
1. 윤년
2. 해당 달의 일수
3. 날짜의 차이를 구하는 함수
4. 오류수정
5. 다시 시작
결론
Source
결과
<결과 1> 정상적 결과
<결과 2> 극한의 결과
<결과 3> 현재는 내 생일로부터 7185일 되는 날이고 7000일째 날은 2001년 5월4일이다.
<결과 4> 잘못된 입력의 수정
본문내용
문제 정의
이번 프로그램은 D-DAY를 계산하는 프로그램이다. 입력은 현재시간과 D-DAY를 알고 싶은 날짜고 출력은 D-DAY로 한다. 여러 함수를 통하여 달력을 만들어야 하고 윤년 등을 만들어 줘야 한다.
1. 윤년
bool을 이용한 함수를 만들었다. 윤년은 4의 배수(year%4==0)인 년도를 말한다. 그러나 100의 배수는 윤년에서 제외하고, 400년의 배수(year%400==0)는 윤년에 다시 포함시킨다. 윤년이면 true를 평년이면 false를 반환한다.
2. 해당 달의 일수
1,3,5,7,8,10,12월은 31일이고 4,6,9,11월은 30일이며 2월은 28일 또는 29일이다. 각각에 맞는 일수를 반환해준다 2월인 경우에는 위의 윤년함수를 호출하여 28일인지 29일인지 판단하여 값을 반환한다. 물론 month와 year를 입력한다.
3. 날짜의 차이를 구하는 함수
2001년 1월 1일을 기준으로 하여 2001년보다 작을 때와 클 때로 나누어 2001년1월1일까지의 일수를 계산한다. 약간 복잡하기는 하지만 2001년을 기준으로 하였기 때문에 어쩔 수 없다. 2001년 1월 1일을 기준으로 현재 시간과 기념일 시간이 같은 방향에 있으면 2001년 1월 1일까지의 날짜의 차이를 빼고 절대값을 씌어준다. 또는 서로 2001년 1월 1일을 기준으로 하여 양 갈래로 나누어져 있다면 서로의 일수를 더해준다.
4. 오류수정
만약 2001년 2월29일을 입력한다면 2001년은 평년이므로 잘못된 결과를 출력해야 한다. 또 년도가 음수거나 12이 넘어 간다든지 한다면 잘못된 결과임을 알리고 재입력하도록 해야 한다. 계산 가능한 최대 한도를 구해 그 범위가 넘어갈 때에는 잘못된 입력을 출력하고 다시 입력하도록 해야한다.
참고 자료
없음