Develop
2003.04.23 11:15
[c] 날짜로 요일 찾기..
조회 수 8557 댓글 0
날짜를 입력하면 요일을 출력하는 함수입니다. Zeller 의 함수라고 하죠.
그 외에도 날짜에 관련된 함수들이 몇몇 있습니다.
각 함수들마다 주석을 달아놓았으니 참고하시길..
/* year가 윤년이면 1을, 아니면 0을 리턴한다.*/
/* 이 함수는 매크로 함수로 만들어도 된다. */
int is_leap_year(int year){
if(year % 400 == 0) return(1);
else if(year % 100 == 0) return(0);
else if(year % 4 == 0) return(1);
else return(0);
}
/* year년 month월의 마지막 날을 숫자로 리턴한다. */
int get_last_day(int year, int month){
if(month == 2) {
if(is_leap_year(year)) return(29);
else return(28);
}
else if(month==2 || month==4 || month==6 || month==9 || month==11) return(30);
else return(31);
}
/* year년 month월 day일이라는 날짜가 없으면 0을, 있으면 1을 리턴한다. */
int valid_date(int year, int month, int day){
if(year < 0 || month < 1 || month > 12) return (0);
if(day < 1 || day > get_last_day(year, month)) return(0);
return(1);
}
/* start_year년 1월 1일부터 year년 month월 day일까지 경과된 날 수를 리턴한다. */
long get_passed_day(int year, int month, int day, int start_year){
long passed_day;
int i;
passed_day=day-1;
/* 윤년이면 366일을 더하고,평년이면 365일을 더한다. */
for(i=start_year; i<year; i++)
if(is_leap_year(i)) passed_day+=366;
else passed_day+=365;
for(i=1; i<month; i++) passed_day+=get_last_day(year, month);
return(passed_day);
}
char *(day_of_week[7])={"일","월","화","수","목","금","토"};
/* Zeller의 함수를 이용하여 year년 month월 day일의 요일을 계산한다. */
/* 일요일은 0,월요일은 1 과 같은 식으로 리턴된다. */
int zeller(int year, int month, int day){
int year_of_century, century, day_of_week;
/* Zeller의 함수에 사용될 수 있도록 year와 month를 보정 */
if (month==1 || month==2) year--;
month=(month+9) % 12 + 1; /* Jan=11, Feb=12, Mar=1, ... */
year_of_century = year % 100; /* 예 : 91 of 1991 */
century = year / 100; /* 예 : 19 of 1991 */
day_of_week = ((13*month-1) / 5 + day + year_of_century +
year_of_century / 4 + century / 4 - 2 * century) % 7;
if (day_of_week < 0) day_of_week = (day_of_week + 7) % 7;
return(day_of_week);
}
번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|---|
697 | Develop | [js] 후리자(영규) 스타일들.. | hooni | 2013.04.23 | 7180 |
696 | Develop | [js] 핫키(단축키) 구현방법 | hooni | 2003.04.23 | 7654 |
695 | Develop | [js] 한글주소(URL) 인코딩(encode, Encoding), 자바스크립트(JavaScript) | hooni | 2013.04.23 | 11347 |
694 | Develop | [js] 한글문서로 된 259가지 자바스크립트 예제파일 | hooni | 2013.04.23 | 6780 |
693 | Develop | [js] 폼(form) 전송시 중복 클릭 방지 간단한 구문 | hooni | 2013.04.23 | 9329 |
692 | Develop | [js] 파이어폭스(Firefox;F/F)에서 outerHTML 작동하도록 만든 메소드 | hooni | 2013.04.23 | 16470 |
691 | Develop | [js] 툴팁.. 좋은거.. (tooltip) | hooni | 2013.04.23 | 7081 |
690 | Develop | [js] 키보드 아스키코드(ASCII) 코드보기 | hooni | 2003.04.23 | 32508 |
689 | Develop | [js] 키보드 아스키 코드 확인하는 간단한 소스 | hooni | 2003.04.23 | 7795 |
688 | Develop | [js] 큐 형식으로 배열사용.. ㅋㅋ | hooni | 2013.04.23 | 7052 |
687 | Develop | [js] 쿠키(cookie)에 대한 설명과 예제.. | hooni | 2003.04.23 | 8351 |
686 | Develop | [js] 초간단 현재 사이트 쿠키 확인하는 명령~ | hooni | 2003.04.23 | 7342 |