특정일이 휴일인지 알아보는 API 정보
특정일이 휴일인지 알아보는 API
본문
2015년 2월 18일 넘겨주면 설날연휴이므로 휴일이야! 라고 나오는 것이 필요해서 관련 API를 검색하던차
SK텔레콤에서 제공하는 EventDay라는 API를 찾았습니다.
사용은 공짜로 되고 하루에 1만건까지 조회되는데, 어차피 휴일여부정보는 고정이기때문에 한번 가지고 온건 디비를 이용해서 저장하는 방식으로 관리하면 될 것 같습니다.
https://developers.sktelecom.com/content/tapi/EventDay/
여기가 홈페이지 주소이고, 회원가입후 프로젝트를 생성한뒤에, EventDay API를 신청하고, 키를 발급받고 (서버용) 아래의 제가 만든 함수를 이용해서 사용하시면 됩니다.
아래 함수에 대한 라이센스는 "알쯔는 멋지다!" 를 외치고 사용해주시면 됩니다. = _=;; ㅋㅋㅋㅋㅋ
function CheckHoliday($date) {
global $DB;
$check = $DB->getRow('holiday',"where `date`='$date'"); // 제가 만든 DB클래스이오니, 적당히 디비에 저장후 가져오는 로직을 넣읍시다.
if (isset($check['date']) == true) { // 디비에 있다면?
return $check['holiday'] == 'T';
} else { // 티비에 없다면,
$time = strtotime($date);
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,'https://apis.sktelecom.com/v1/eventday/days?type=h&year='.date('Y',$time).'&month='.date('m',$time).'&day='.date('d',$time));
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($ch,CURLOPT_SSLVERSION,3);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch,CURLOPT_POST,0);
curl_setopt($ch,CURLOPT_TIMEOUT,30);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_HTTPHEADER,array(
'TDCProjectKey: [발급받은 KEY를 입력하세요]',
'Accept: application/json'
));
$result = curl_exec($ch);
curl_close($ch);
$data = json_decode($result);
if ($data->totalResult == 1) { // 휴일이다!
$DB->insert('holiday',array('date'=>$date,'holiday'=>'T','title'=>$data->results[0]->name));
return true;
} else { // 휴일이 아니다!
$DB->insert('holiday',array('date'=>$date,'holiday'=>'F'));
return false;
}
}
}
if (CheckHoliday('2015-02-18') == true) echo '어머 휴일이네요~! 노세요~!';
0
댓글 7개

언제쓸지 모르지만 미리 외칩니다....ㅎㅎ



아직 안 쓰니까 반만 외칠께요. ㅈㅅ


그래서 다녀왔습니다.

조만간 써야할거 같습니다. ^^