CALENDAR(3)

명칭
easterg, easterog, easteroj, gdate, jdate, ndaysg, ndaysj, week, weekday - 서기에서의 날짜의 연산

프로그램 라이브러리
libcalendar

서식
<calendar.h> struct date * easterg(int year, struct date *dt) struct date * easterog(int year, struct date *dt) struct date * easteroj(int year, struct date *dt) struct date * gdate(int nd, struct date *dt) struct date * jdate(int nd, struct date *dt) int ndaysg(struct date *dt) int ndaysj(struct date *dt) int week(int nd, int *year) int weekday(int nd)

해설
이러한 함수는, 서기 0 년 (즉 B.C. 1 년) 3 월 1 일 (으)로부터 서기 100000 년까지의 광범위의 세월의 달력을 연산합니다.

프로그램은 -lcalendar (와)과 링크 시킬 필요가 있습니다.

함수 easterg(), easterog() 및 easteroj() (은)는, Easter Sunday (부활제의 일요일) 의 날짜를, dt 그리고 지정한 구조체에 보존해, 이 구조체의 포인터를 돌려줍니다. 함수 easterg() (은)는, 태양력 (1582 년 이후에 서유럽의 대부분의 크리스트교회에서 채용되었다) (을)를 가정해, 함수 easterog() 및 easteroj() (은)는, 정통파 (1582 년 이전의 서유럽 교회, 및 오늘까지 계속된다 그리스 정교회, 러시아 정교회 등 이른바 동방 정교회) 의 규칙에 따라, Easter Sunday 의 날짜를 연산합니다. 그 결과, easterog() (은)는 태양력(현행 태양력)을 돌려주어, easteroj() (은)는 율리우스력( 구태양력)을 돌려줍니다.

함수 gdate(), jdate(), ndaysg() 및 ndaysj() (은)는, 날짜의 "년, 달, 날" 그렇다고 하는 일반 표기와 보다 연산에 적절했다 "날짜" 표현의 상호 변환을 실시합니다. B.C. 1 년 3 월 1 일을 0 으로서 이후의 경과일에 차례로 번호가 차입니다. 즉 이 날 번호는, B.C. 1 년 3 월 1 일부터 그 날까지의 경과일수를 나타냅니다. 변환은, 정수일 번호에 대해서만 기능합니다.

gdate() 및 jdate() 함수는, 날 번호 nd 에 대응하는 날짜를 dt 그리고 지정한 구조체에 보존해, 그 구조체의 포인터를 돌려줍니다.

ndaysg() 및 ndaysj() 함수는, dt 그리고 지정한 날짜일 번호를 돌려줍니다.

gdate() 및 ndaysg() 함수는, 1582 년 10 월 4 일 이후의 태양력 및, 이전의 율리우스력을 가정합니다만, 한편, jdate() 및 ndaysj() (은)는 일관해 율리우스력만을 가정합니다.

이것들 2 개의 달력으로는 윤년의 정의가 다릅니다. 율리우스력에서는 4 의 배수의 해는 모두 윤년입니다만, 태양력으로는 그 중의 100 의 배수로, 400 의 배수가 아닌 해를 제외합니다. 즉, 1700, 1800, 1900, 2100 년은 윤년이 아니고, 2000 년은 윤년이 됩니다. 이 새로운 규칙은, 1582 년 10 월 4 일에, 같은 날 이후의 10 일을 삭제하는 것으로 개시되었습니다. 카톨릭 국가의 대부분은, 16 세기말까지 이 양력을 채용했습니다만, 한편, 20 세기까지 아직 율리우스력에 머무르는 나라들도 있었습니다. 영국과 그 식민지가 양력으로 전환한 것은, 1752 년 9 월 2 일이었지만, 그 시점에서는 벌써 11 일을 삭제할 필요가 있었습니다.

함수 week() (은)는, nd 그리고 지정된 날 번호의 날짜가 포함되는 주번호를 돌려줍니다. 인수 *year (은)는, 그 주 (의 반이상)가 포함되는 해로 설정됩니다. 주번호는, 매년의 3 일 이상이 포함되는 제 1 주를 1 으로서 차례로 차입니다. 주는 월요일부터 시작됩니다. 이 함수는 태양력인 만큼 정의됩니다.

함수 weekday() (은)는, nd 그리고 지정된 날 번호의 날짜의 요일 (월요일 = 0 … 일요일 = 6) (을)를 돌려줍니다.

구조체 date 하 <calendar.h> 안에서 정의되고 있습니다. 다음의 필드를 포함합니다.

    int y;		/* year (0000 - ????) */
    int m;		/* month (1 - 12) */
    int d;		/* day of month (1 - 31) */

0 년은 역사가의 손에서는 "1 B.C." (이)라고 쓰여집니다만, 천문학자와 이 프로그램 라이브러리에서는 "0" (와)과 표기됩니다.

관련 항목
ncal(1), strftime(3)

표준
주번호는 ISO 8601: 1988 에 적합하고 있습니다.

역사
calendar 프로그램 라이브러리는 FreeBSD 3.0 그리고 처음 등장했습니다.

저자
이 메뉴얼 페이지와 프로그램 라이브러리는, Wolfgang Helbig <helbig@FreeBSD.org> 에 의해 쓰여졌습니다.

버그
이 프로그램 라이브러리는 극히 신중하게 코딩 되었으므로, 남겨진 버그는 없습니다.