반응형

지난주부터 기상청 API 사용하여 날씨 앱 만들기를 진행하고 있어요.

진행 하던 중 기상청 API를 사용하여 날씨를 구하기 위해서는 base_time을 넘겨야 하는데 

react-native 에서 사용할 수 있는 라이브러리 중 moment.js 를 활용하면 간편하게 코드를 짤 수 있어서 공유하려고 합니다.

 

    var baseDate = todayDate;
    var baseTime = "0200";
    // 기상청 정보는 1일 총 8번 업데이트 된다.(0200, 0500, 0800, 1100, 1400, 1700, 2000, 2300)
    // moment(currentTime).isBetween("1200", "0210") : 
    // 1200 <= currentTime < 0210 : 1200은 포함되고 (true) 0210은 포함되지 않음(flase)
    if (moment(currentTime).isBetween("1200", "0211")) {
      // 0시~2시 10분 사이 : base_date가 어제 날짜로 바뀌어야 한다.
      baseDate = yesterdayDate;
      baseTime = "2300";
    } else if (moment(currentTime).isBetween("0211", "0511")) {
      // 2시 11분~5시 10분 사이
      baseTime = "0200";
    } else if (moment(currentTime).isBetween("0511", "0811")) {
      // 5시 11분~8시 10분 사이
      baseTime = "0500";
    } else if (moment(currentTime).isBetween("0811", "1111")) {
      // 8시 11분~11시 10분 사이
      baseTime = "0800";
    } else if (moment(currentTime).isBetween("1111", "1411")) {
      // 11시 11분~14시 10분 사이
      baseTime = "1100";
    } else if (moment(currentTime).isBetween("1411", "1711")) {
      // 14시 11분~17시 10분 사이
      baseTime = "1400";
    } else if (moment(currentTime).isBetween("1711", "2011")) {
      // 17시 11분~20시 10분 사이
      baseTime = "1700";
    } else if (moment(currentTime).isBetween("2011", "2311")) {
      // 20시 11분~23시 10분 사이
      baseTime = "2000";
    } else {
      // 23시 11분~23시 59분
      baseTime = "2300";
    }

 

코드 해석

위 코드의 주석에도 적어 놓았지만, 기상청 날씨 데이터 정보는 하루에 8번 업데이트 됩니다.

그 시간은 0200, 0500, 0800, 1100, 1400, 1700, 2000, 2300 이렇게 새벽 두시에 시작해서 세시간 간격으로 됩니다.

 

코드를 살펴보면

moment(currentTime).isBetween("1200", "0211") 

위 코드는 12시부터 2시10분까지가 해당됩니다.

즉, 1200 <= currentTime < 0210 과 의미가 같습니다.

 

12시 ~ 2시10분 까지는 아직 오늘의 데이터가 나오기 전인 시간이에요. 그래서 전날의 23시 데이터가 가장 최신의 데이터인 것이죠.

 

그래서 코드는

if (moment(currentTime).isBetween("1200", "0211")) {
      // 0시~2시 10분 사이 : base_date가 어제 날짜로 바뀌어야 한다.
      baseDate = yesterdayDate;
      baseTime = "2300";
 }

 

baseDate 변수에 yesterdayDate (어제 날짜)를 넣어주고,

baseTime 변수에는 "2300"을 넣어주는 것입니다.

 

더 추가적인 정보가 궁금하시면 댓글 남겨주세요 :)

 

 

이상 기상청 API 사용하여 날씨 앱 만들기 중 [base_time] 값 구하기 코드 설명이었습니다.

 

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기