C#で外為オンラインから為替レートを取得してみた

 為替レートを取得するサンプルです。

「Yahoo Finance」、「Google Finance」が廃止となったので、外為オンラインから取得してみました。


為替レート取得クラス

public class ExchangeUtil : PublicWebApiUtil {
    public enum CurrencyPairCode : int {
        //英ポンド/NZドル
        GBPNZD = 1,
        //カナダドル/NZドル
        CADJPY,
        //英ポンド/AUドル
        GBPAUD,
        //AUドル/円
        AUDJPY,
        //AUドル/NZドル
        AUDNZD,
        //ユーロ/カナダドル
        EURCAD,
        //ユーロ/米ドル
        EURUSD,
        //NZドル/円(jsonString);

        return ds.Tables[0];
    }

    // 指定した貨幣コードの始値を取得
    public Decimal GetOpenPrice(CurrencyPairCode currencyPairCode) {
        Decimal price = -1;

        DataTable exchangeTbl = GetExchangeRateTable();
        DataRow[] rows = (
            from row in exchangeTbl.AsEnumerable()
            let qOpenPrice = row.Field(EnumUtil.GetLabel(RateTableColIdx.Open))
            let qCurrencyPairCode = row.Field(EnumUtil.GetLabel(RateTableColIdx.CurrencyPairCode))
            where qCurrencyPairCode == EnumUtil.GetName(currencyPairCode)
            select row).ToArray();

        price = Decimal.Parse(rows[0][(int)RateTableColIdx.Open].ToString());

        return price;
    }

}

親クラス

public class PublicWebApiUtil {
    public PublicWebApiUtil() {
    }
    /// WebAPI呼び出し
    protected string GetResponseString(string url) {
        HttpWebRequest req = null;
        HttpWebResponse res = null;
        StreamReader sr = null;
        string jsonString = "";
        try {
            //サーバーからデータを受信する
            req = (HttpWebRequest)WebRequest.Create(url);
            res = (HttpWebResponse)req.GetResponse();
            sr = new StreamReader(res.GetResponseStream());
            //すべてのデータを受信する
            jsonString = sr.ReadToEnd();
        } finally {
            sr.Close();
            res.Close();
        }
        return jsonString;
    }
}

使い方

     public void GetPriceRate() {
         ExchangeUtil eu = new ExchangeUtil();
         //始値のレートを取得
         Decimal d = eu.GetOpenPrice(ExchangeUtil.CurrencyPairCode.USDJPY);
     }

0 件のコメント:

コメントを投稿

厳選 Visual Studioの便利なショートカット

  エラー箇所にジャンプ 「Ctrl + Shift + F12」 ブレークポイント 設定/解除 「F9」 有効化/無効化 「Ctrl + F9」 ViEmu特有 「:ls」:バッファナンバーのリストを表示。 「:b2」:バッファ2のファイルを開く。 「:n」:次のバッファのファ...