>> Edit article
이름
제목
패스워드
C 로 날짜를 구하는 함수를 만들다 cal 에서 이상한 점을 발견했었습니다. 100년과 1000년은 분명히 윤년이 아닌데, 실행을 해보면, ---------------------- # cal 2 100 February 100 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ---------------------- 이렇게 나오는 겁니다. 분명히 버그다! 이렇게 생각을 했었지만..... 그게 아니더군요..아래의 글을 읽어 보세요.. --------------- 아 래 --------------- 현재 사용되고 있는 태양력은 그레고리력인데, 원칙대로라면 제시하신 계산법이 맞 습니다. 다만, 이 방식(400년에 97번의 윤년)은 그레고리력이 적용된 1582년 이후에 해당됩 니다. 그 이전은 율리우스력을 사용해서 그냥 4년마다 1번씩 윤년이 들어갑니다. 따라서 말씀하신 100년과 1000년의 경우는 윤년이 맞습니다. (100년단위 보정이 없 습니다.) 좀더 정확히는 08년부터 4년마다 1번 윤년이 되고, 04년은 윤년이 아닙니다. 따라서, BC 6 - AD 7년 : 윤년 없음 8년 - 1581년 : 4년마다 윤년 (400년에 100회) 1582년 - : 400년마다 97번의 윤년 또한 그레고리력이 적용된 이후에도 약간의 오류가 있는데 원래는 그레고리력 반포시점인 1582년도에서 3월 11일 - 3월 20일이 없어야 하지만, 실제 국가마다 적용되는데 차이가 있어 이 보정이 이루어지지 않은 달력의 경우는 누적오류를 정정하기 위해 1752년 9월 3일 - 9월 13일이 없습니다. 한편, 현재의 그레고리력은 3000년에 1일정도의 오차가 또 발생합니다. 따라서, 제대로 하려면 3000년마다 다시 한번 윤년보정을 해주어야 하는데, 아직까지는 이 부분에 대한 규정은 없는 것으로 알고 있습니다. 이런 것들 말고도 과거의 역법은, 현재의 달력과는 월별 날짜에 차이가 있어서 정확한 작업을 원하신다면 좀더 상세한 자료를 수집해서 확인하셔야 할 것입니다. 조금이나마 도움이 되기를 바랍니다. ^_^ 안녕히. ---------------------------------------------------------------------- : 말 그대롭니다. 달력구하는 쉘스크립트입니다. : 전에 올렸던 것이 넘 느려서 이렇게 다시 올립니다. : : 버그 수정을 하는 도중 새로운 사실을 발견했습니다. cal이라는 프로그램 있죠? : : 그거 윤년을 고려하지 않습니다. 따라서 그것과 제것을 비교하시고 : : 잘못됐다고 생각하시면 안됩니다. : : 아무쪼록 쉘스크립트 공부하시는 분께 조금이나마 도움이 되었으면 좋겠습니다. : : <a href="http://esc.cl.hangkong.ac.kr/~fthing/shellcal.sh"><b>클릭!!</b></a> : : 실행방법> : : $ ls -l shellcal.sh : -rw-r--r-- 1 jinjin jinjin 2023 6월 20 18:02 shellcal.sh : $ chmod 755 shellcal.sh : : 실행할 준비가 된상태 이제 실행> : : $ ./shellcal.sh 1982 11 # 년도와 달 사이에 공백을 둠. : ==================== : 1982년 11월 : -------------------- : 일 월 화 수 목 금 토 : -------------------- : 1 2 3 4 5 6 : 7 8 9 10 11 12 13 : 14 15 16 17 18 19 20 : 21 22 23 24 25 26 27 : 28 29 30 : ==================== : $ : : : 그럼 이만... : : -- : 에공 sed하고 grep은 옵션이 왜케 마노... : : 얼렁 알아야 할텐데...--by kimio
Copyleft
1999-2026 by
JSBoard Open Project
Theme Designed by
IDOO
All right reserved