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
번호 분류 제목 날짜 조회 수
737 Server 웹서버에서의 램디스크 엄청난 효과 비교하기 file 2016.11.27 4909
736 컴퓨터잡담 크롬 캐시파일 삭제방법(Chrome cache file delete) file 2016.11.27 2708
735 Server Minify로 CSS, JS파일, gzip으로 한꺼번에 압축해서 전송하기 file 2016.11.27 4337
734 Server 램드라이브를 이용한 mysql 번개속도로 개선방법 file 2016.11.27 5236
733 Server [mysql] Created tmp disk tables 디스크 쓰기방지 대안 1 2016.11.26 5158
732 Server 슈퍼캐시에서 .htaccess 이부분 제거해야 하나? 2016.11.23 4504
731 Server HP XW6600 E5430 SPEC file 2016.11.06 4731
730 Server XpressEngine 최적화 기진곰님의 슈퍼캐시 테스트 file 2016.09.19 5014
729 Server 윈도우용 MEMcached 설치방법 1 file 2016.09.17 5178
728 Excel 엑셀 암호변경 제거 방법 file 2016.09.12 6349
727 Server jQuery CDN 2016.09.11 4298
726 Server XE PC에서 모바일화면 출력방법 file 2016.09.08 2835
725 Server XE Request 줄이기 file 2016.09.07 1937
724 Server Apache에 대한 mod_proxy 지원 구성 2016.09.06 1800
723 WindowsTip vcruntime140.dll / vcomp140.dll / vcamp140.dll 오류해결법 2016.09.06 6814
722 WindowsTip Visual Studio 2015용 Visual C++ 재배포 설치 오류 해결방법 3 file 2016.09.06 15391
721 Server [php.ini]XE 신디케이션 OpenSSL 오류문구 해결방법 file 2016.08.25 2797
720 WindowsTip 윈도우 CPU 사용률 확인, 실시간 저장하기 2016.08.24 5662
719 Server innodb_use_sys_malloc to FALSE 2016.08.24 2637
718 Server innodb_use_sys_malloc에 따라 The InnoDB memory heap is disabled mysql error 메시지 1 2016.08.23 3793
Board Pagination Prev 1 ... 8 9 10 11 12 ... 46 Next
/ 46

http://urin79.com

우린친구블로그

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


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

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

설치 취소