[ActionScript] 날짜로 요일 계산하기

아래의 getDay 함수는 액션스크립트로 구성된 요일을 계산해 반환하는 함수입니다. 이 getDay 함수의 파라메터는 날짜로써 년(예:2012), 월(1 ~ 12), 일(1 ~ 31)입니다.

private function getDay(year:int, month:int, day:int):String
{
    const dayStrings:Object = {
        0:"일요일",
        1:"월요일",
        2:"화요일",
        3:"수요일",
        4:"목요일",
        5:"금요일",
        6:"토요일"
    };
    
    if (month == 1 || month == 2) year--;
    month = (month + 9) % 12 + 1;
    var y:int = year % 100;
    var century:int = year / 100;
    var week:int = ((13 * month - 1) / 5 
        + day + y + y / 4 + century / 4 - 2 * century) % 7;
    if (week < 0) week = (week + 7) % 7;

    return dayStrings[week];
}

이처럼 날짜로부터 요일을 계산하는 함수를 직접 작성해 사용할 수 있지만 다음처럼 액션스크립트에서 이미 제공하고 있는 Date 클래스를 사용해 보다 간단히 요일을 계산할 수 있습니다.

 const dayStrings:Object = {
        0:"일요일",
        1:"월요일",
        2:"화요일",
        3:"수요일",
        4:"목요일",
        5:"금요일",
        6:"토요일"
    };
     
    var d:Date = new Date(2012, 10-1, 4);
    Alert.show(dayStrings[d.day]);

여기서 주의해야할 점은 월(Month)은 1부터 시작하지 않고 0부터 시작한다는 것입니다. 그래서 11번 코드에서 지정한 (10-1)은 9월이 아니라 10월을 의미합니다.

좌표계 변환 OpenAPI

좌표계 변환을 위한 OpenAPI입니다. 변환하고자 하는 좌표에 대해 WKT 형태의 포인트, 폴리라인, 폴리곤 형식으로 지정할 수 있고 변환된 좌표 결과도 WKT로 받을 수 있음으로 매우 다양한 형태로 활용될 수 있습니다. 간단하게 하나의 WGS84 경위도 좌표계 (127, 37)을 카텍(Katech) 좌표계로 변환하기 위한 OpenAPI 호출 형태는 다음과 같습니다.

사용자 삽입 이미지

간단한 URL 호출형태의 OpenAPI로써 사용된 인자값들은 다음과 같습니다.

사용자 삽입 이미지
변환될 좌표계를 지정하는 방식이 WKT라는 형식입니다. WKT에 대한 설명을 위해 폴리곤, 폴리라인, 포인트 들에 대한 간단한 예를 통해 설명하면 다음과 같습니다.

먼저 하나의 좌표를 지정할 수 있는 WKT 형태의 포인트의 예입니다. 하나의 좌표로 표현되는 포인트에 대한 WKT는 POINT 문자열로 시작합니다.

사용자 삽입 이미지
다음은 여러 개의 좌표들로 구성된 폴리라인에 대한 WKT 형태의 예입니다. 폴리라인에 대한 WKT는 선분(LINE)의 연속(STRING)이라는 의미로 LINESTRING 문자열 값으로 시작합니다.

사용자 삽입 이미지
그리고 여러 개의 좌표들로 구성된 폴리곤에 대한 WKT 형태의 예입니다. 폴리곤의 WKT는 POLYGON 문자열 값으로 시작합니다.

사용자 삽입 이미지
그리고 다음은 구멍(Hole)이 있는 폴리곤에 대한 WKT 형태의 예입니다. 위의 경우처럼 POLYGON 문자열로 시작합니다. 구멍(Hole)을 나타내는 폴리곤은 여러개가 올 수 있지만 구멍이 아닌 외곽을 나타내는 폴리곤은 하나만 올 수 있습니다.

사용자 삽입 이미지
이 좌표 변환 OpenAPI 서비스는 지오서비스 사에서 제공하고 있습니다. 학술/연구 그리고 상업적인 용도에 대해서 자유롭게 사용할 수 있습니다. 향후 더욱 다양한 좌표계를 지원할 예정입니다. 사용상의 개선점과 문제점에 대해서는 연락 또는 메일 주시면 검토 후 적극 반영토록 하겠습니다.