Skip to content
[Docs]스프레드시트
2014.11.11 08:17

음력변환

조회 수 17849 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄




=sol2lun("2014", "11", "11")



 /**

 * 음력일자를 받아서 양력일자를 리턴하는 함수 (한국천문연구원 사이트를 이용)

 * 음력 10월 3일의 2013년 양력일자를 알고 싶은 경우 lun2sol(2013, 10, 3, 1) 으로 호출

 * 응답으로는 '2013/11/05' 와 같이 스트링을 리턴.

 * yoon (윤달구분) : 1 - 평달, 2 - 윤달

 */

function lun2sol(yyyy, mm, dd, yoon) {

  yyyy = parseInt(yyyy, 10); mm = parseInt(mm, 10); dd = parseInt(dd, 10);

  

  if ((yyyy <= 1391) || (yyyy >= 2050)) {

    return "ERROR";

  }

  if ((mm < 1) || (mm > 12)) {

    return "ERROR";

  }

  if ((dd < 1) || (dd > 31)) {

    return "ERROR";

  }

 

  /* 이미 조회했던 일자이면 ScriptProperties 에서 읽어 온다. -- 네트웍을 통한 조회는 한번만 하도록 */  

  var prop = ScriptProperties.getProperty("lun2sol/" + yyyy + "/" + mm + "/" + dd + "/" + yoon);

  if (prop != null) {

    Logger.log("Read from db: " + prop);

    return prop;

  }

  

  var payload = {

    "lun_year": String(yyyy),

    "lun_month": String(mm),

    "lun_day": String(dd),

    "yoon": String(yoon)

  };

  var params = {

    "method": "post",

    "payload": payload

  };

  var result = UrlFetchApp.fetch("http://astro.kasi.re.kr/Life/Knowledge/solar2lunar/convert_daily_l2s.php", params);

  var htmlstr = result.getContentText();

  //Logger.log(htmlstr);

 

  var pos = htmlstr.indexOf("td width=500");  //-- 천문연구원 사이트 변경되면 수정 필요

  if (pos >= 0) {

    pos = pos + 13;

    var checkChar = htmlstr.substr(pos, 1);

    if ((checkChar >= "0") && (checkChar <= "9")) {

      ;

    }

    else {

      return "ERROR";

    }

    

    var new_prop = htmlstr.substr(pos, 4) + "/" + htmlstr.substr(pos + 7, 2) + "/" + htmlstr.substr(pos + 12, 2)

    ScriptProperties.setProperty("lun2sol/" + yyyy + "/" + mm + "/" + dd + "/" + yoon, new_prop);

    

    return new_prop;

  }

  return "ERROR";

}

 

/**

 * 양력일자를 받아서 음력일자를 리턴하는 함수 (한국천문연구원 사이트를 이용)

 * 양력 2013년 1월 26일의 음력일자를 알고 싶은 경우 sol2lun(2013, 1, 26) 으로 호출

 * 응답으로는 '2012/12/15 평달' 과 같이 스트링을 리턴.

 */

function sol2lun(yyyy, mm, dd) {

  yyyy = parseInt(yyyy, 10); mm = parseInt(mm, 10); dd = parseInt(dd, 10);

 

  if ((yyyy <= 1391) || (yyyy >= 2050)) {

    return "ERROR";

  }

  if ((mm < 1) || (mm > 12)) {

    return "ERROR";

  }

  if ((dd < 1) || (dd > 31)) {

    return "ERROR";

  }

 

  /* 이미 조회했던 일자이면 ScriptProperties 에서 읽어 온다. -- 네트웍을 통한 조회는 한번만 하도록 */  

  var prop = ScriptProperties.getProperty("sol2lun/" + yyyy + "/" + mm + "/" + dd);

  if (prop != null) {

    Logger.log("Read from db: " + prop);

    return prop;

  }

  

  var payload = {

    "sol_year": String(yyyy),

    "sol_month": String(mm),

    "sol_day": String(dd),

  };

  var params = {

    "method": "post",

    "payload": payload

  };

  var result = UrlFetchApp.fetch("http://astro.kasi.re.kr/Life/Knowledge/solar2lunar/convert_daily_s2l.php", params);

  var htmlstr = result.getContentText();

  var yoonstr;

  var pos = htmlstr.indexOf("td width=500");  //-- 천문연구원 사이트 변경되면 수정 필요

  if (pos >= 0) {

    pos = pos + 13;

    var checkChar = htmlstr.substr(pos, 1);

    if ((checkChar >= "0") && (checkChar <= "9")) {

      ;

    }

    else {

      return "ERROR";

    }

 

    if (htmlstr.indexOf("br>(") == -1) {             //-- 천문연구원 사이트 변경되면 수정 필요

      yoonstr = "평달";

    } 

    else {

      yoonstr = "윤달";

    }

 

    var new_prop = htmlstr.substr(pos, 4) + "/" + htmlstr.substr(pos + 7, 2) + "/" + htmlstr.substr(pos + 12, 2) + " " + yoonstr;

    ScriptProperties.setProperty("sol2lun/" + yyyy + "/" + mm + "/" + dd, new_prop);

 

    return new_prop;

  }

  return "ERROR";

}

 

function test_lun2sol() {

  //Logger.log(lun2sol("2013", "10", "3", 1));

  Logger.log(lun2sol(2013, 1, 4, 1));

}

 

function test_sol2lun() {

  Logger.log(sol2lun("2013", "1", "26"));

}





로그인 후 댓글쓰기가 가능합니다.

?

List of Articles
번호 분류 제목 날짜 조회 수
277 컴퓨터잡담 [익스플로러 오류] 인터넷 연결중 메시지 이후 반응없음, 다시 시작프로그램 작동중 곧바로 꺼짐현상 해결방법 2 2011.07.11 6959
276 컴퓨터잡담 윈도우7 공유기 사용시 네트워크 연결 문제 2 2011.06.27 17367
275 컴퓨터잡담 [TCP/IP] 인터넷 연결 문제 복구 및 확인방법 2 2011.06.23 19705
274 컴퓨터잡담 DHCP서버 IP시간 만료로 인터넷이 안되는 경우 해결방법 18 2011.06.22 15127
273 컴퓨터잡담 [WGATRAY.EXE] 정품인증 Windows Genuine Advantage 수동 삭제 3 2011.06.20 5752
272 컴퓨터잡담 마지막 검색 세션이 예상치 못하게 종료되었습니다 3 2011.06.20 6341
271 컴퓨터잡담 윈도우 진입후 익스플로러 연결 딜레이 현상 2011.06.20 4189
270 컴퓨터잡담 윈도우7 익스플로러8 연결문제. file 2011.06.20 4436
269 컴퓨터잡담 윈도우7 노트북에서 인터넷 끊킴현상 발생시 조치. 4 2011.06.20 4894
268 컴퓨터잡담 SK브로드밴드 윈도우7 또는 Vista 속도이상시 환경설정방법 2011.06.20 8374
267 컴퓨터잡담 호스트 / 서버운영자가 가볼만한 사이트 2011.06.17 5423
266 컴퓨터잡담 CUBRID 알아보기 2011.06.17 6252
265 컴퓨터잡담 GoogleUpdate.exe 프로세스의 제거와 삭제 1 3 2011.06.16 9851
264 컴퓨터잡담 윈도우7 노트북에서 인터넷 끊김현상 발생되는 원인 해결방법 file 2011.06.11 15962
263 컴퓨터잡담 [hosts 파일 이용] 리얼클릭 광고 무력화 시키기 2011.06.05 4091
262 컴퓨터잡담 [PHP] 랭킹 순위 구하는 로직 2011.05.15 9634
261 컴퓨터잡담 익스플로러8 액티브X(Active-X) 오류 / DEP 데이터 실행방지 프로그램 문제[Win XP] 1 file 2011.05.07 8463
260 컴퓨터잡담 [PHP] 오류출력 안하기 2011.05.04 8401
259 컴퓨터잡담 익스플로러9 사용시 화면 멈춤현상 개선방법 1 2011.04.12 14442
258 프로세스 PF사용...페이징 중지를 통한 시스템 성능개선 2011.04.10 30888
Board Pagination Prev 1 ... 31 32 33 34 35 ... 46 Next
/ 46

http://urin79.com

우린친구블로그

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소