시간(Time, Calendar) 관련 프로그래밍

프로그래밍/프로그래밍 메모장 2006/04/15 09:45

프로그래밍 메모장

시간에 관련된 프로그래밍에 대한 메모와 기록. by xevious7 2006.4.11
http://www.xevious7.com

  대학교 1학년때의 공부하면서 예제를 푸는 프로그램이 아닌 공부가 끝나고
  한번 만들어보자라고 해서 만든  최초의 프로그램은 cal 이라는 프로그램
  이었습니다. 지금은 이름도 기억안나는 메인프레임에 연결된 터미날에서
  FORTRAN77 로 프로그래밍 했었습니다. 지금은 예약어(Reserved Word)
   제대로 기억나지 않는 포트란이지만 정말 정말 재미있었습니다.


  컴파일과 링크 로더가 따로 분리되어 한단계식 하는 불편함이 있었지만
   저의 선생님 세대의 천공카드 프로그래밍 보다는 백배 나은 터미날에서 키보드로
  프로그래밍 했으니깐 나름대로 재미있는기억입니다.
  (그당시 PC도 있었지만  도트 프린터와 함께 과제나 논문등을 찍기 바쁜
    PC보다 거의 쓰러져가는 터미날실을 이용했습니다. 실제로 한2년 후엔
    터미날실이 없어지고 그자리에 PC들이 들어서고 PC실이 되었습니다. 공식적으로
    하드웨어 터미날쓴 마지막세대라고 할까요. ^^;)

  어찌되었든 cal 프로그램은 유닉스의 cal 과 같은 기능을 똑같이


수행하는 프로그램을
  만들어 보자는 것이였고 간단하게 생각했던 달력 표시 프로그래밍은 생각보다는  여러가지를 고려해야
만들어질 수 있던 프로그램
이었습니다.

  시간 그리고 시간차 그리고 현재시간 등등의 관련된 프로그래밍 모듈에서는 항상 고려해야 하는 가장 기본적인 것들을 다 고려해야 되는 프로그래밍 였기때문에 이 프로그램을 만든 것은 많은 도움이 되었습니다.

  만약 초보 프로그래머이고 달력찍기 프로그램을 만든적이 없다면 한번 만들어보는 것만으로도 더 많은 것을 배울 수 있을 것입니다.

  보통 달력표시를 하는데 생각해야 될 상황은 다음과 같습니다.

  달력을 표시하는데 고려하는 상황
   
          윤달 , 윤년을 고려한 각각의 달의 일수.( 몇년 몇월은 며칠이 있는가? 계산)
          표시하고자 하는 달의 1일의 요일

   이 두가지 말고 여러가지를 생각해야될 것이 있겠지만 기본적으로 이 두가지만
  해결하면 표시하는것은 해결됩니다.
  원하는달의 일수와 원하는 달의 1일의 요일을 알면  1일부터 차례대로 일수만큼
   7일단위로 정리해서 찍으면 됩니다.

  프로그래밍 환경이 점점 발달하면서 이러한 달력표시 기능자체를 지원하는
   API또는 쉽게 구현할 기본적인 함수들이 나오고 있습니다.
  따라서 실제로 어떤 모듈에서 쓰기위해 하는 프로그래밍이 아닌 이상
   달력기능 자체를 위한 프로그래밍은 시간 낭비 일 수 있습니다. 다만 공부를
  위해서는 해볼만 하다고 생각합니다.


----------------------------------------------------------------------
API 메모.

시간과 관계된 C/C++함수들.

기본적인 함수는 time()  ANSI표준으로 어느 플랫폼이건 상관없이 사용가능.
localtime(), tm structure ....

정밀한 시간 얻어오기  유닉스계열 . gettimeofday 함수
윈도즈계열 GetTickCount() // 커널함수 그냥 바로 사용가능
               timeGetTime() 함수 위함수랑 역활 똑같지만 타이머가 틀리다. mmsystem 함수.

top