첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
유용한 소스 코드가 있으면 icodebroker@naver.com으로 보내주시면 감사합니다.
블로그 자료는 자유롭게 사용하세요.

■ 도/분/초 구조체

----------------------------------------------------------------------------------------------------

using System;

 

/// <summary>

/// 도/분/초

/// </summary>

public struct DMS

{

    //////////////////////////////////////////////////////////////////////////////////////////////////// Field

    ////////////////////////////////////////////////////////////////////////////////////////// Public

 

    #region Field

 

    /// <summary>

    ///

    /// </summary>

    public double Degree;

 

    /// <summary>

    ///

    /// </summary>

    public double Minute;

 

    /// <summary>

    ///

    /// </summary>

    public double Second;

 

    #endregion

 

    //////////////////////////////////////////////////////////////////////////////////////////////////// Constructor

    ////////////////////////////////////////////////////////////////////////////////////////// Public

 

    #region 생성자 - DMS(degree, minute, sencond)

 

    /// <summary>

    /// 생성자

    /// </summary>

    /// <param name="degree"></param>

    /// <param name="minute"></param>

    /// <param name="sencond"></param>

    public DMS(double degree, double minute, double sencond)

    {

        Degree = degree;

        Minute = minute;

        Second = sencond;

    }

 

    #endregion

 

    //////////////////////////////////////////////////////////////////////////////////////////////////// Method

    ////////////////////////////////////////////////////////////////////////////////////////// Public

 

    #region 설정하기 - Set(degree)

 

    /// <summary>

    /// 설정하기

    /// </summary>

    /// <param name="degree"></param>

    public void Set(double degree)

    {

        this.Degree = (int)degree;

        this.Minute = (int)((degree - this.Degree) * 60);

        this.Second = ((degree - this.Degree) * 60 - this.Minute) * 60;

    }

 

    #endregion

 

    #region 설정하기 - Set(degree, minute, second)

 

    /// <summary>

    /// 설정하기

    /// </summary>

    /// <param name="degree"></param>

    /// <param name="minute"></param>

    /// <param name="second"></param>

    public void Set(double degree, double minute, double second)

    {

        this.Degree = degree;

        this.Minute = minute;

        this.Second = second;

    }

 

    #endregion

 

    #region 도 구하기 - GetDegree()

 

    /// <summary>

    /// 도 구하기

    /// </summary>

    /// <returns></returns>

    public double GetDegree()

    {

        return this.Degree + this.Minute / 60 + this.Second / 3600;

    }

 

    #endregion

 

    #region 라디안 구하기 - GetRadian()

 

    /// <summary>

    /// 라디안 구하기

    /// </summary>

    /// <returns>라디안</returns>

    public double GetRadian()

    {

        return GetDegree() * Math.PI / 180d;

    }

 

    #endregion

}

----------------------------------------------------------------------------------------------------

Posted by 사용자 icodebroker
TAG

댓글을 달아 주세요