분류 전체보기

1 ··· 4 5 6 7 8

String형태의 날짜 "20200311"에 다음날짜 값을 얻고 싶어서 +1을 할 경우에는 값이 날짜 범위를 넘어가게 된다.

그래서 String 형태의 값을 Date형태로 변환한 후 하루를 더하고 다시 String으로 변환해준다.

function datePlus(depTime) {					// depTime = "20200311"
	var year = depTime.substr(0,4);				// 2020
	var month = depTime.substr(4,2);			// 03
	var day = depTime.substr(6,2);				// 11
		
	var date = new Date(year, month-1, day);		// Date 생성
		
	date.setDate(date.getDate() + 1);			// 다음날짜로 set
		
	year = date.getFullYear();				// 원하는 값 변수에 저장
	month = date.getMonth() + 1;
	if(month<10) month = '0' + month;
	date = date.getDate();
	if(date<10) date = '0' + date;
		
	return year + month + date;				// 원하는 형태로 반환	"20200312"
}
    
function nextDay() {
	var nextDate = datePlus(document.getElementById('depTime').value);
		
	alert("nextDay() 실행!\n" + nextDate);
		
}


/* 알림창 */
alert("알림!");

 

 

/* 확인창 */
confirm("확인!");

 

 

/* 질문창 */
prompt("질문!");


' > Javascript' 카테고리의 다른 글

[JavaScript] 스크립트 내 readonly 사용  (0) 2020.03.14
[Javascript] 정규표현식  (0) 2019.12.30

제거하지 않은 기본화면입니다.

상태바 - 스마트폰 화면에서 시계 및 알림이 표시되는 부분

타이틀바 - 앱의 제목이 표시되는 부분

 

 

상태바(Status bar) 제거

 

1. styles.xml - style태그 내부에 작성

<item name="windowFullscreen">true</item>

2. MainActivity.java onCreate에 코드 추가

(※ setContentView 밑에 작성할 경우 에러가 발생합니다.)

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

 

 

타이틀바(Title bar) 제거

1. styles.xml - style태그 내부에 작성

<!--No Title Bar-->
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>

2. MainActivity.java에서 코드 추가

(※ setContentView 밑에 작성할 경우 에러가 발생합니다.)

supportRequestWindowFeature(Window.FEATURE_NO_TITLE);


'안드로이드 > Android' 카테고리의 다른 글

[Android] 애드몹 광고  (0) 2020.04.17
[Android] ScalableLayout  (0) 2020.04.17
[Android] RecyclerView  (0) 2020.04.10
[Android] 로딩화면 구현  (0) 2020.04.06
[Android] 다음 지도 API  (0) 2020.02.25

[Android] 다음 지도 API

2020. 2. 25. 23:44

1.

http://apis.map.kakao.com/android/guide/ 에서 SDK를 다운받는다. 

 

2.

다운 받은 파일을 압축해제한 후 보기방식을 Project 로 변경해서

app - libs 안에 libDaumMapAndroid.jar를 넣고

app - src - main - jniLibs 폴더를 생성해서 (arm64-v8a, armeabi, armeabi-v7a)세 개의 폴더를 넣어준다.

 

3.

AndroidManifest.xml에 권한설정 및 AppKey 추가

 

manifest태그 내부에 작성

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

manifest - application태그 내부에 작성

<meta-data android:name="com.kakao.sdk.AppKey" android:value="발급받은 네이티브 앱 키"/>

 

4.

xml코드 작성

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <RelativeLayout
        android:id="@+id/map_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</RelativeLayout>

 

5.

MainActivity.java코드 작성

MapView mapView = new MapView(this);

ViewGroup mapViewContainer = (ViewGroup) findViewById(R.id.map_view);
mapViewContainer.addView(mapView);

 


API ERROR 해결방법

 

AVD에서 팅김

Can`t load DaumMapEngineApi.so file

: AVD환경에서 앱이 실행되지 않고 팅기면서 위의 에러가 표시 되는데 Kakao Developers에 나와있는 설명대로 했는데도 계속해서 에러가 떠서 몇시간을 소비했습니다. AVD로 다른예제를 잘 사용하고 있었는데 다음 API는 AVD환경에서 실행을 하면 안되고 스마트폰에서 실행해야 합니다. 스마트폰에서는 아주 잘 됩니다.

 

지도 빈화면 출력 시( Logcat HTTP 에러 )

NativeBaseNetConnection: Cleartext HTTP traffic to ot0.maps.daum-img.net not permitted

: AndroidManifest.xml - application태그에 android:usesCleartextTraffic="true" 추가

android:usesCleartextTraffic="true"

 

Run 에러

INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113

: bulid.gradle - android 내부에 splits 추가

splits {
        abi {
            enable true
            reset()
            include 'x86', 'x86_64', 'armeabi', 'armeabi-v7a', 'mips', 'mips64', 'arm64-v8a'
            universalApk false
        }
    }

 

 


'안드로이드 > Android' 카테고리의 다른 글

[Android] 애드몹 광고  (0) 2020.04.17
[Android] ScalableLayout  (0) 2020.04.17
[Android] RecyclerView  (0) 2020.04.10
[Android] 로딩화면 구현  (0) 2020.04.06
[Android]상태바 및 타이틀바 제거  (0) 2020.02.26

[Bootstrap] collapse

2020. 2. 23. 20:27

collapse에 필요한 script 선언

<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
<!-- JQuery CDN 연동 -->
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<!-- Bootstrap JS -->
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>

 

script 구문작성

<script type="text/javascript">

$(function() {
	
	$('#btn').on('click', function () { 						// 버튼을 클릭했을 때
		let collapses = $('div.container').find('.collapse');	// 클래스 이름이 collapse인 태그를 찾음
		
		collapses.each(function () { 
			$(this).collapse('toggle');							// toggle을 이용해 버튼을 클릭할 때마다
		}); 													// 열리고 닫힘
	});
});

</script>

 

HTML 작성

<div class="container m-5">
	<div class="collapse" id="collapseExample">
		콜랩스 출력!
	</div>
	<input type="button" id="btn" class="btn btn-outline-dark" value="버튼">
</div>

[API] 항공 API

2020. 2. 7. 00:42

공공데이터포털 요청변수 및 출력결과

더보기

국내항공 운항정보 (클릭)

 

항공사 목록 조회

 

공항목록 조회

 

항공운행정보목록 조회

 

기상청 항공기상 정보 (클릭)

 

METAR/SPECI조회

 

항공기 운항정보 (클릭)

 

국제선 운항 스케줄

 

실시간 운항정보

 

국내선 운항스케줄

 

공항 코드 정보

 

전국 공항 주차요금 (클릭)

 

전국공항 주차요금 정보

 

전국공항 버스노선 (클릭)

 

전국공항 버스노선 정보

 

전국공항 실시간 주차정보 (클릭)

 

전국공항 주차정보

 

노선별 소요시간 및 거리 정보 (클릭)

 

노선별 소요시간 및 거리 정보

 

일별 예상승객정보 및 혼잡여부 (클릭)

 

일별 예상승객 정보

 

항공운행정보목록 조회 JAVA 샘플코드

import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.io.BufferedReader;
import java.io.IOException;

public class ApiExplorer {
    public static void main(String[] args) throws IOException {
        StringBuilder urlBuilder = new StringBuilder("http://openapi.tago.go.kr/openapi/service/DmstcFlightNvgInfoService/getFlightOpratInfoList"); /*URL*/
        urlBuilder.append("?" + URLEncoder.encode("ServiceKey","UTF-8") + "=서비스키"); /*Service Key*/
        // urlBuilder.append("&" + URLEncoder.encode("numOfRows","UTF-8") + "=" + URLEncoder.encode("10", "UTF-8")); /*한 페이지 결과 수*/
        // urlBuilder.append("&" + URLEncoder.encode("pageNo","UTF-8") + "=" + URLEncoder.encode("1", "UTF-8")); /*페이지 번호*/
        urlBuilder.append("&" + URLEncoder.encode("depAirportId","UTF-8") + "=" + URLEncoder.encode("NAARKJJ", "UTF-8")); /*출발공항ID*/
        urlBuilder.append("&" + URLEncoder.encode("arrAirportId","UTF-8") + "=" + URLEncoder.encode("NAARKPC", "UTF-8")); /*도착공항ID*/
        urlBuilder.append("&" + URLEncoder.encode("depPlandTime","UTF-8") + "=" + URLEncoder.encode("20161001", "UTF-8")); /*출발일*/
        // urlBuilder.append("&" + URLEncoder.encode("airlineId","UTF-8") + "=" + URLEncoder.encode("AAR", "UTF-8")); /*항공사ID*/
        
        URL url = new URL(urlBuilder.toString());
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setRequestMethod("GET");
        conn.setRequestProperty("Content-type", "application/json");
        System.out.println("Response code: " + conn.getResponseCode());
        BufferedReader rd;
        if(conn.getResponseCode() >= 200 && conn.getResponseCode() <= 300) {
            rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        } else {
            rd = new BufferedReader(new InputStreamReader(conn.getErrorStream()));
        }
        StringBuilder sb = new StringBuilder();
        String line;
        while ((line = rd.readLine()) != null) {
            sb.append(line);
        }
        rd.close();
        conn.disconnect();
        System.out.println(sb.toString());
    }
}

[Javascript] 정규표현식

2019. 12. 30. 06:36

//모든 공백 체크 정규식
	var empJ = /\s/g;
	//아이디 정규식
	var idJ = /^[a-z0-9]{4,12}$/;
	// 비밀번호 정규식
	var pwJ = /^[A-Za-z0-9]{4,12}$/; 
	// 이름 정규식
	var nameJ = /^[가-힣]{2,6}$/;
	// 이메일 검사 정규식
	var mailJ = /^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i;
	// 휴대폰 번호 정규식
	var phoneJ = /^01([0|1|6|7|8|9]?)?([0-9]{3,4})?([0-9]{4})$/;

아이디 - a~z, 0~9를 가지는 4~12자리 아이디를 생성할 수 있다

비밀번호 - A~Z, a~z, 0~9를 가지는 4~12자리 비밀번호를 생성할 수 있다.

이름 - 가~힣 한글로 이루어진 문자만으로 2~6자리 이름을 생성할 수 있다.

이메일 - 특수문자 사용가능하며 중앙에 @ 필수이고 . 뒤에 2~3글자가 필요한 이메일을 생성할 수 있다.

휴대폰 - 0~9를 가지며, '-'를 생략하고 01? 으로 시작해서 중간 3~4자, 뒤 4자로 이루어진 휴대폰번호를 생성할 수 있다.


[Java] GUI 창닫기

2019. 12. 20. 14:28

addWindowListener(new WindowAdapter() {

	@Override
	public void windowClosing(WindowEvent e) {
      // 창 닫기
      // 프레임 종료
      dispose();
      // 프로세스 종료
      System.exit(0);
	}
			
});

X 버튼을 눌러도 작동이 안 되는데 리스너를 등록시켜주면 정상적으로 종료가 가능합니다.


' > Java' 카테고리의 다른 글

[Java] 4자리 수로 표시하기  (0) 2020.06.05
[Java] this, super  (0) 2020.04.28
[Java] 데이터 타입  (0) 2019.11.13
[Java] 단축키  (0) 2019.11.13
[Java] Hello Java  (0) 2019.11.13

MySQL 설치

2019. 12. 15. 03:19

- 설치파일( mysql-installer-community-5.6.45.0.msi )

- 한글설정파일( my.ini )

 

순서:

Custom을 통해서 설치하고자 하는 프로그램 선택

 

root pw: 1234

Add User: Name - javaid

              Password - javapass

 

시스템 - 고급시스템 설정 - 시스템 속성 - [고급]환경변수 - 시스템변수의 Path 편집
- C:\Program Files\MySQL\MySQL Server 5.6\bin 경로추가

 

설치확인: cmd(관리자권한) 실행 -  mysql -u root -p  (pw:1234)


project

2019. 11. 28. 17:43

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>Insert title here</title>
		
		<link href="style.css" rel="stylesheet">
	</head>
	<body>
		
		<!-- 로고 / 메뉴 -->
		<header>
			<nav>
				<h1>LOGO</h1>
				<div>
				    <ul class="nav">
				      <li>가</li>
				      <li>나</li>
				      <li>다</li>
				      <li>라</li>
				      <li>마</li>
				    </ul>
				</div>
			</nav>
		</header>
		<!-- // 로고 / 메뉴 -->
		
	</body>
</html>

+ Recent posts