플러터로 기상청 날씨 앱 만들기 일지 6. 시간별 날씨, 3일간 오전/오후 날씨 아이콘 처리

2022. 1. 16. 21:37·앱 프로그래밍/Flutter
반응형

시간별 날씨

void weatherTime(){
  if(now.hour < 3){
    next1 = '0300';
    next2 = '0600';
    next3 = '0900';
    next4 = '1200';
  } else if(now.hour < 6){
    next1 = '0600';
    next2 = '0900';
    next3 = '1200';
    next4 = '1500';
  } else if(now.hour < 9){
    next1 = '0900';
    next2 = '1200';
    next3 = '1500';
    next4 = '1800';
  } else if(now.hour < 12){
    next1 = '1200';
    next2 = '1500';
    next3 = '1800';
    next4 = '2100';
  } else if(now.hour < 15){
    next1 = '1500';
    next2 = '1800';
    next3 = '2100';
    next4 = '0000';
  } else if(now.hour < 18){
    next1 = '1800';
    next2 = '2100';
    next3 = '0000';
    next4 = '0300';
  } else if(now.hour < 21){
    next1 = '2100';
    next2 = '0000';
    next3 = '0300';
    next4 = '0600';
  } else {
    next1 = '0000';
    next2 = '0300';
    next3 = '0600';
    next4 = '0900';
  }
}

String? timeDesc(next){
  if(next == '0000'){
    return '0시';
  } else if(next == '0300'){
    return '3시';
  } else if(next == '0600'){
    return '6시';
  } else if(next == '0900'){
    return '9시';
  } else if(next == '1200'){
    return '12시';
  } else if(next == '1500'){
    return '15시';
  } else if(next == '1800'){
    return '18시';
  } else if(next == '2100'){
    return '21시';
  }
}

 

위 함수를 아래와 같이 활용하였다.

weatherTime();
if (parsed_json['category'] == 'TMP') {
  if (parsed_json['fcstTime'] == next1) {
    next1_TMP = parsed_json['fcstValue'];
    next1_time = timeDesc(next1);
  } else if (parsed_json['fcstTime'] == next2) {
    next2_TMP = parsed_json['fcstValue'];
    next2_time = timeDesc(next2);
  } else if (parsed_json['fcstTime'] == next3) {
    next3_TMP = parsed_json['fcstValue'];
    next3_time = timeDesc(next3);
  } else if (parsed_json['fcstTime'] == next4) {
    next4_TMP = parsed_json['fcstValue'];
    next4_time = timeDesc(next4);
  }
}

if (parsed_json['category'] == 'REH') {
  if (parsed_json['fcstTime'] == next1) {
    next1_REH = parsed_json['fcstValue'];
    next1_time = timeDesc(next1);
  } else if (parsed_json['fcstTime'] == next2) {
    next2_REH = parsed_json['fcstValue'];
    next2_time = timeDesc(next2);
  } else if (parsed_json['fcstTime'] == next3) {
    next3_REH = parsed_json['fcstValue'];
    next3_time = timeDesc(next3);
  } else if (parsed_json['fcstTime'] == next4) {
    next4_REH = parsed_json['fcstValue'];
    next4_time = timeDesc(next4);
  }
}

뭔가 좀 더 효율적인 방법이 있을 것 같은데... 아직 여기까지밖에 생각이 안 난다.

 

결과

시간대별 날씨 아이콘 변경은 아직 구현하지 않았다.

 

 

시간별 날씨 아이콘

 

 

3일간 오전/오후 날씨 아이콘

날씨 아이콘 처리 코드가 생각보다 너무 길고 복잡하다;

게다가 3일간 날씨 아이콘은 처리를 잘못해서... 0시 ~ 2시 사이에는 오늘의 오전/오후 아이콘을 불러오지 못해 오류가 발생한다. 우선 오류가 발생하지 않는 시각의 화면은 이렇다.

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'앱 프로그래밍 > Flutter' 카테고리의 다른 글

[플러터 기능 구현] loading 페이지를 거치지 않고 뒤로 가기  (0) 2022.02.13
플러터로 기상청 날씨 앱 만들기 일지 8. 마무리  (1) 2022.01.17
플러터로 기상청 날씨 앱 만들기 일지 7. 설정 페이지 추가  (0) 2022.01.16
플러터 DateFormat 요일 한국어로 출력  (0) 2022.01.14
플러터로 기상청 날씨 앱 만들기 일지 5. 기상청 API 데이터 연동 오류 수정(HTTP service에러는 해결 불가능...)  (2) 2022.01.14
플러터로 기상청 날씨 앱 만들기 일지 4. 데이터 연동2(에어코리아 API)  (0) 2022.01.09
'앱 프로그래밍/Flutter' 카테고리의 다른 글
  • 플러터로 기상청 날씨 앱 만들기 일지 8. 마무리
  • 플러터로 기상청 날씨 앱 만들기 일지 7. 설정 페이지 추가
  • 플러터 DateFormat 요일 한국어로 출력
  • 플러터로 기상청 날씨 앱 만들기 일지 5. 기상청 API 데이터 연동 오류 수정(HTTP service에러는 해결 불가능...)
청량리 물냉면
청량리 물냉면
프로그래밍 공부를 하고 있습니다. 공부 내용 정리 겸 정보 공유를 목적으로 합니다.
    반응형
  • 청량리 물냉면
    노력중인 블로그
    청량리 물냉면
  • 전체
    오늘
    어제
    • 분류 전체보기 (505)
      • 프로그래밍 (41)
        • Programming (1)
        • C | C++ (6)
        • Java (28)
        • Python (5)
      • 웹 프로그래밍 (108)
        • HTML | CSS (5)
        • JavaScript | TypeScript (41)
        • React (25)
        • Vue.js (0)
        • Next.js (18)
        • Spring & Spring Boot (13)
        • JSP & Servlet (1)
        • DB (4)
      • 웹 프로젝트 (77)
        • 웹 프로젝트 (22)
        • 🥨스낵몰 (3)
        • 👨‍👨‍👧‍👧소셜 가계부 (26)
        • 🌜꿈 일기장 (11)
        • 🔮포트폴리오 사이트 (11)
        • 🏃‍♂️팀 프로젝트: 일정관리 프로그램 (0)
        • 📈팀 프로젝트: AI기반 주식 분석 플랫폼 (0)
        • 😺Just Meow It: 조언 사이트 (2)
        • 📕Workly: 교대근무 다이어리 (1)
      • 앱 프로그래밍 (26)
        • Flutter (24)
        • Kotlin (2)
      • Problem Solving (166)
        • 백준 (52)
        • 프로그래머스 (79)
        • SWEA (29)
      • Computer Science (40)
        • 알고리즘 (14)
        • 컴퓨터 네트워크 (18)
        • 이산수학 (8)
      • Developer (47)
        • 후기 (4)
        • 자료정리 (4)
        • 취업 | 취준 (9)
        • SSAFY (1)
        • 웹개발 교육 프로그램 (9)
        • TIL (20)
  • 블로그 메뉴

    • 홈
    • Github
  • 공지사항

    • 프로그래밍 공부 중😊
  • 인기 글

  • 태그

    구현
    플러터
    mysql
    SWEA
    프로젝트
    자바
    리액트
    React
    공식문서
    컴퓨터네트워크
    백준
    spring boot
    강의내용정리
    알고리즘
    포트폴리오
    bfs
    파이썬
    Jiraynor Programming
    웹사이트
    뉴렉처
    d3
    ZeroCho
    블로그 제작
    AWS
    타입스크립트
    Next.js
    자바스크립트
    Til
    프로그래머스
    클론 프로젝트
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
청량리 물냉면
플러터로 기상청 날씨 앱 만들기 일지 6. 시간별 날씨, 3일간 오전/오후 날씨 아이콘 처리
상단으로

티스토리툴바