때때로 우리는 몇년 전의 중요한 일들을 생각하면서 그 때가 무슨 요일이었던가 또는 며칠이었던가 몹시 궁금해하는 경우가 있다. 그러나 안타깝게도 기억이 희미해져서 정확히 판단할 수 없고 벌써 여러해가 지났기 때문에 그때의 달력도 모두 없어져 버린 때에는 매우 난처하기까지하다. 그러나 컴퓨터는 이런 어려운 문제를 깨끗이 해결해 줄 수 있다. 과거뿐만 아니라 10년, 20년 후의 날짜계획도 정확하게 세울 수 있으니 컴퓨터 달력은 편리하다 하지 않을 수 없겠다.
프로그램 개요
가. 사용자 : 만년달력을 필요로 하는 분
나. 사용목적 : 과거 수년전이나 미래등 연도에 제한없이 원하는 해의 달력을 만든다.
다. 처리내용
1) 알고자 하는 연도와 월을 생각해서 입력한다.
2) 입력한 연도와 월의 달력을 화면(screen)에 보여준다.
라. 프로그램 변수(Variables)
●YY : 알고자 하는 연도(4자리)
●MM : 알고자 하는 월(1자리 또는 2자리)
●XX(ⅰ) : 1월부터 22월까지 매월의 날짜수를 기억
●TT$(6) : 일요일부터 토요일까지 한주일에 대한 날짜를 기억.
●A : YY를 400으로 나눈 나머지.
●B : YY를 100으로 나눈 나머지.
●C : YY를 4로 나눈 나머지.
●X : YY에서 1을 뺀수.
●D1 : X에서 365(일)를 곱한수.
●D2 : X에 포함된 윤년의 수(4로 나누어지거나 100으로는 나눌수 없는 연도).
●D3 : X에 포함된 윤년의 수(400으로 나누어 지는 연도).
●D1+D2+D3(X년 까지의 총 날짜수)
●E : 알고자하는 연도, 월의 1일이 무슨 요일인지 결정.
프로그램 흐름도
프로그램
프로그램 설명
●10~60 : 프로그램을 처음에 RUN시키면 (그림1)과 같은 화면이 나타난다. 이때 원하는 달력의 연도와 월을 커서(cursor)의 위치에 입력시키면 된다. 예를들어 1945년 8월 달력을 보고 싶으면 "1945 8"이라고 입력하면 되는데 (그림 2)에는 몇가지 보기를 나타내었다.
●100~140 : 1년중의 1월부터 12월까지 매달별로 날짜의 수를 기억시킨다.
●170~220 : 입력한 연도가 윤년인지 계산해서 윤년이면 2월의 날짜수를 29로 정한다. (윤년은 연도의 수자가 400으로 나누어지는 경우, 4로 나눌수 있지만 100으로는 나눌수 없는 경우이다).
●222~280 : 알고자 하는 달력의 1일 무슨 요일로 시작하는지 결정하기 위해서 바로 그 전날까지의 총날짜수를 구한다.
●285~400 : 달력의 첫째 주일의 날짜, 요일을 결정해서 인쇄한다.
●410~550 : 둘째부터 여섯째 주일의 날짜, 요일을 결정해서 인쇄한다.